GCC 4.5 не позволяет мне этого сделать:
class foo {
public:
foo() = default;
private:
foo(foo const&) = default;
foo& operator=(foo const&) = default;
};
Он жалуется, что:
error: 'foo :: foo (const foo &)' объявлено с закрытым доступом не может быть задано по умолчанию в теле класса
ошибка: 'foo & foo :: operator = (const foo &)', объявленный с закрытым доступом, не может быть задан по умолчанию в теле класса
Однако GCC 4.6 позволяет мне это сделать. Какой из них правильный?