使用C++ 11中显式删除的成员函数,是否仍然值得从不可复制的基类继承?
我在谈论私有继承基类的技巧,该基类具有私有或删除的复制构造函数和复制赋值(例如boost::noncopyable).
这个问题提出的优势是否仍适用于C++ 11?
我不明白为什么有些人声称在C++ 11中使类不可复制更容易.
在C++ 03中:
private:
MyClass(const MyClass&) {}
MyClass& operator=(const MyClass&) {}
Run Code Online (Sandbox Code Playgroud)
在C++ 11中:
MyClass(const MyClass&) = delete;
MyClass& operator=(const MyClass&) = delete;
Run Code Online (Sandbox Code Playgroud)
编辑:
正如许多人所指出的那样,为私有拷贝构造函数和拷贝赋值运算符提供空体(即{})是错误的,因为这将允许类本身调用那些运算符而没有任何错误.我首先开始没有添加{},但遇到了一些链接器问题,这些问题让我添加{}有些愚蠢的原因(我不记得这些情况).我知道更清楚.:-)