C++11的"default"只能应用于特殊成员功能吗?
C++11's "default" can be only applied on special member functions?
=default
只适用于特殊成员函数吗?我尝试了以下内容,但它没有编译:
struct A{
A(int, char)=default;
int i;
char c;
};
是的,您只能显式默认特殊成员函数。从 [dcl.fct.def.default]:
显式默认的函数应
(1.1) — 成为特殊成员函数,
毕竟,只有特殊成员函数是隐式默认的 - 那么为什么显式默认其他任何函数是有意义的呢?
在这种情况下,您可以简单地删除构造函数并A
聚合。这将允许您使用列表初始化 ( A a{42, 'c'};
)。
相关文章:
- 类模板的成员功能的定义在单独的TU中完全专业化
- 升压信号2将插槽传递到成员功能以断开连接
- 多次实现成员功能
- 私有成员数据不可用于公共成员功能
- 如何避免大多数成员功能相同的代码重复
- C 成员功能
- =删除用户定义的成员功能,除了构造函数,分配运算符C 11
- C 朋友课程和朋友成员功能
- C 函数调用包装器包含类成员功能作为模板参数
- 创建类成员功能
- 成员功能C 的不同实现
- 返回类型不可知模板类成员功能
- C 11螺纹 - 非静态成员功能的使用无效 - 工作GCC 5.1.0损坏的GCC 7.3.1
- 超载类成员功能标记为const
- C 功能指针和成员功能指针
- 将非静态成员函数C 的使用无效,而将成员功能作为函数变量
- 我可以使用Priority_queue的基础容器的成员功能
- 如何子类可运行任何成员功能
- 共享类时如何隐藏成员功能文件
- 从C文件访问C 类成员功能