我想在该类中禁用move构造函数。除了 move ,我想基于复制构造函数。当我尝试编写此代码时:
class Boo
{
public:
Boo(){}
Boo(const Boo& boo) {};
Boo(Boo&& boo) = delete;
};
Boo TakeBoo()
{
Boo b;
return b;
}
在编译过程中,我收到错误消息:
如何禁用move构造函数并强制复制?
最佳答案
不要创建任何move构造函数:
class Boo
{
public:
Boo(){}
Boo(const Boo& boo) {};
};
只要存在用户定义的复制构造函数,就不会自动生成move构造函数,因此将调用复制构造函数。
关于c++ - 禁用move构造函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35405771/