C++0x - Defaulted and Deleted Functions
コンパイラが生成する関数(コンストラクタ, コピーコンストラクタ, 代入演算子, デストラクタ etc...)
のdefault/delete指定ができるようになる
struct hoge { hoge() = default; // コンパイラが生成するデフォルトコンストラクタを使う };
インライン化の制御
struct hoge { virtual ~hoge(); }; hoge::~hoge() = default; // インライン化させない
コピーの制御
struct hoge { hoge() = default; hoge(const hoge&) = delete; hoge& operator=(const hoge&) = delete; }; hoge h; // OK hoge h2(h); // エラー h = h2; // エラー
new演算子の制御
struct hoge { void* operator new(std::size_t) = delete; }; hoge *h = new hoge[3]; // エラー