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让我这样做。哪一个是正确的?