【发布时间】:2016-06-09 03:25:59
【问题描述】:
=default 是否只适用于特殊的成员函数?我尝试了以下,它没有编译:
struct A{
A(int, char)=default;
int i;
char c;
};
【问题讨论】:
标签: c++ function c++11 default member
=default 是否只适用于特殊的成员函数?我尝试了以下,它没有编译:
struct A{
A(int, char)=default;
int i;
char c;
};
【问题讨论】:
标签: c++ function c++11 default member
是的,您只能显式默认特殊成员函数。来自[dcl.fct.def.default]:
明确默认的函数应该
(1.1) — 是一个特殊的成员函数,
毕竟,只有特殊的成员函数是隐式默认的 - 那么为什么显式默认其他任何东西才有意义呢?
在这种情况下,您可以简单地删除构造函数并将A 设为聚合。这将允许您使用列表初始化 (A a{42, 'c'};)。
【讨论】: