Есть ли стандартные способы управления созданием default constructor, copy constructor, copy assignment operator?
Или хотя бы объявление их приватными.
Чтобы "убрать" конструктор по умолчанию подходит такой класс
struct noDefaultCtor
{
protected:
noDefaultCtor(){};
};
Вроде не к чему придраться =)
Для отключения оператора присваивания подходит такой базовый ькласс
struct noCopy
{
static char _;
char& __;
noCopy() : __(noCopy::_) {};
};
char noCopy::_ = '_';
Но жаль 4 байта
А вот с конструктором копирования не получается, такой класс не работает
struct noCopyCtor
{
noCopyCtor(){}
private:
noCopyCtor(const noCopyCtor& t){};
};
Использование предполагается такое:
struct A : noCopyCtor, noDefaultCtor
{
...
};
Есть ли другие варианты по оператору присваивания и хоть какие-нибудь по конструктору копирования?
Здравствуйте, Иванков Дмитрий, Вы писали:
boost::noncopyable