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&&);
};
同様に移動を防ぐには(そしてoperators =同様に)?