3
以下程序是否形成不良?2默認拷貝構造函數:有可能嗎?
struct Foo
{
Foo(Foo&) = default;
Foo(const Foo&) = default;
};
int main()
{
}
它成功地compiles with clang++ 3.8.0 and g++ 6.3.0(編譯標誌-std=c++11 -Wall -Wextra -Werror -pedantic-errors
)。
嗯..這些不是*默認*複製構造函數。這些是* default ** ed ***拷貝構造函數。除此之外,它們與以常規方式定義的複製構造函數沒有區別(使用'{}')。有兩個複製構造函數在參數上具有不同的const限定是沒有什麼不尋常的。 – AnT
@AnT我很抱歉我的英文不好。當然,默認** ed **。 – Constructor
'Foo(Foo&)'是(也)一個有效的拷貝構造函數。 – Jarod42