[英]Can I default a private constructor in the class body or not?
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讓我這樣做。 哪一個是正確的?
N3291中沒有任何內容表明您無法聲明private
和default
。 請注意,這是對規范的更改 ,見第8.4.2節第2段; 早期版本說他們必須公開。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.