有一个boost::noncopyable,我的库中有自己的不可复制的类。在最新的C ++标准中是否存在std :: noncopyable或等效的敲门声?
这是一件小事,但是从这样的课程中得出的意图更加清晰。
答案 0 :(得分:14)
不,因为有一种标准方法可以使类不可复制:
class MyClass
{
MyClass(const MyClass&) = delete;
MyClass& operator=(const MyClass&) = delete;
}:
但是,通过从MyClass&&
重载构造函数,可以使不可复制的类可移动。
使该类不可复制的声明(上述)可以在公共或私人部分。
答案 1 :(得分:12)
我确定你已经通过阅读CashCow的帖子弄明白了,但我想我也可以为不可复制的课程提供基类。
class Noncopyable {
public:
Noncopyable() = default;
~Noncopyable() = default;
private:
Noncopyable(const Noncopyable&) = delete;
Noncopyable& operator=(const Noncopyable&) = delete;
};