=default
仅适用于特殊会员功能吗?我尝试了以下内容并且没有编译:
struct A{
A(int, char)=default;
int i;
char c;
};
答案 0 :(得分:6)
是的,您只能显式默认特殊成员函数。来自[dcl.fct.def.default]:
明确默认的功能应为 (1.1) - 是一个特殊的成员函数,
毕竟,只有特殊的成员函数隐式默认 - 那么为什么显式地默认其他什么呢?
在这种情况下,您只需删除构造函数并使A
成为聚合。这将允许您使用列表初始化(A a{42, 'c'};
)。