C++0x 暗黙に削除される特殊メンバ関数

暗黙に定義される特殊メンバ関数*1が暗黙に定義されるとエラーになるクラスでは、
暗黙に削除されたことになります。

以下のケースでは、デフォルトコンストラクタが暗黙に削除されます。

struct HasReference {
    int &ref;
    // 暗黙宣言:
    // HasReference() = delete;
    // HasReference(const HasReference&);
    // HasReference& operator=(const HasReference&);
    // ~HasReference();
};


N2924 Implicitly-Deleted Special Member Functions

C++0x Defaults and Deleted Functions

C++0xの言語拡張まとめ



*1:デフォルトコンストラクタ、コピーコンストラクタ、コピー代入演算子、デストラクタ