- 01
 - 02
 - 03
 - 04
 - 05
 - 06
 - 07
 - 08
 - 09
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 - 20
 - 21
 - 22
 - 23
 - 24
 - 25
 - 26
 - 27
 - 28
 
                        #include <iostream>
#include <boost/noncopyable.hpp>
#include <assert.h>
using namespace std;
class noncopyable
  {
   protected:
      noncopyable() {}
     virtual ~noncopyable() {}
   private:  // emphasize the following members are private
      noncopyable( const noncopyable& );
      virtual const noncopyable& operator=( const noncopyable& )final = delete;
  };
class T: public noncopyable
{
public:
   const T& operator=( const T& ){return *this;}
};
int main() {
   T a;
   a=T();
   std::cout<<"kokoko"<<std::endl;
   return 0;
}
                                 
        
Так тоже не заработает, что в общемто логично. Я сдаюсь.
Как надежно запретить оператор копирования? С конструктором все просто. Запретил и все, а тут никак...
Я вообще мудак и по лоховски ошибся, но все равно не работает. Надоело помечать ссылки. вручную. Напишите мне скрипт или пусть страйко все фичи, что недавно запилил, отремонтирует. У меня все сломалось.
ну а boost::noncopyable нужен не для того, чтобы кому то в иерархии запретить его доопределить, а для того, чтоб гадкий компилятор не создал его по умолчанию (и, тем более, не ругался на свои же ошибки в своем тривиальном присваивании)
Вот так новости... А запретить до определять в потомке видимо никак? КРЕСТОПРОБЛЕМЫ
я не спроста обратил внимание на виртуальное присваивание
сравни свой оригинал пост с вот таким вариантом
http://liveworkspace.org/code/993caff120b93f79ced1795f14e4d4ba
Ты вот лучше скажи, как operator= перегружать запретить в потомке?
можешь попытаться запретить наследоваться от себя (final class в С++11)
это академический интерес или такая идейная рахитектура, запретить потомку всё что можно?
это абсолютно дело потомка будет ли он копироваться сам от себя или не будет, ему это дело виднее - ты ведь разрешил наследоваться, завещание написал - давай до свидания
C++ - уровень доступа к членам в производном классе в любую сторону.
Java - только в сторону повышения уровня доступа.
В каком стандарте ждать тебя?