4
=default
只適用於特殊會員功能嗎?我試了下面,但沒有編譯:C++ 11的「默認」只能應用於特殊的成員函數嗎?
struct A{
A(int, char)=default;
int i;
char c;
};
=default
只適用於特殊會員功能嗎?我試了下面,但沒有編譯:C++ 11的「默認」只能應用於特殊的成員函數嗎?
struct A{
A(int, char)=default;
int i;
char c;
};
是的,你只能明確地默認特殊的成員函數。從[dcl.fct.def.default]:
被明確地默認應
(1.1)的函數 - 是一個特殊的成員函數,
畢竟,只有特殊成員函數暗含默認 - 所以爲什麼它會明確明確默認別的?
在這種情況下,您可以簡單地刪除構造函數並使A
成爲一個聚合。這將允許您使用列表初始化(A a{42, 'c'};
)。