【发布时间】:2011-11-05 16:47:02
【问题描述】:
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 允许我这样做。哪一个是正确的?
【问题讨论】:
标签: c++ language-lawyer c++11 defaulted-functions