GCC 4.5ではこれができません:
class foo {
public:
foo() = default;
private:
foo(foo const&) = default;
foo& operator=(foo const&) = default;
};
それは次のように不平を言っています:
エラー: 非パブリック アクセスで宣言された 'foo::foo(const foo&)' は、クラス本体でデフォルト設定できません
エラー: 非パブリック アクセスで宣言された 'foo& foo::operator=(const foo&)' は、クラス本体でデフォルト設定できませんクラス本体
しかし、GCC 4.6 ではそれが可能です。どちらが正しいですか?