禁用operator =和复制构造函数

时间:2014-07-08 12:52:20

标签: c++

有没有办法禁用operator =和复制构造函数并仅允许使用std::move()? 我知道我能做到

foo& operator= (const foo&) = delete;
foo(const foo&) = delete;

但这也会禁用std :: move。

我想要的是阻止复制此类 并仅允许foo foo2 = std::move(foo1);

顺便说一下。我有私人的结构。

1 个答案:

答案 0 :(得分:6)

使用defaulted特殊成员函数:

foo(foo&&) = default;
foo& operator=(foo&&) = default;