|
|
1
8
为了它的价值, P0960 "Allow initializing aggregates from a parenthesized list of values" 照它说的做。好像有 passed EWG 并正在进入C++ 20中。
这是不正确的。所有类都有默认的构造函数,以及复制/移动构造函数。即使你
C++是C++,自然有角的情况下,即使P0960也做了“错误的事情”,如文中所述:
的初始化
p0960采用向后兼容的路由:如果一个构造函数 能够 被调用(在现有规则下),然后总是优先。括号仅在没有可以调用的构造函数时调用聚合初始化。 |
|
|
2
0
https://en.cppreference.com/w/cpp/language/aggregate_initialization 聚合初始化不是构造函数。
根据本文档,您没有定义任何构造函数,也没有满足聚合初始化的其他条件。(请参阅“说明”一节中的“类类型”项),这意味着您的代码不会调用类似自动生成的签名构造函数之类的东西。
文件中提到它的影响是:
AS
所以它找不到这样的构造函数。
这样想,代码不能编译也是有意义的
如果编写任何类型的构造函数(甚至
据我所知,聚合初始化也在C中工作,它甚至不支持构造函数。 这里是 a good article 值得一读。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |