C++ 中的一个常见模式是将复制构造函数设为私有:
class A
{
public:
// ...
private:
A(const A&);
};
但是以下代码是否会编译(在 C++11/14 中):
A f();
auto a = f();
该标准包含有关自动生成移动构造函数的信息。我既无权访问标准,也无权访问实际生成移动构造函数的编译器。我的问题是:我必须写吗
class A
{
public:
// ...
private:
A(const A&);
A(const A&&);
};
以防止移动(和操作员=类似地)?