禁用操作符=和复制构造函数

Disable operator= and copy constructor

本文关键字:复制 构造函数 操作符      更新时间:2023-10-16

是否有办法禁用操作符=和复制构造函数,只允许使用std::move() ?我知道我能做到

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

但是这也会禁用std::move

我想要的是阻止复制这个类只允许foo foo2 = std::move(foo1);

顺便说一句。

使用defaulted特殊成员函数:

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