gpt4 book ai didi

C++:嵌套结构的平面初始化列表?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:51:09 24 4
gpt4 key购买 nike

已定义

struct A {
int a,b;
};

struct B {
A a;
int b;
};

下面的初始化是显而易见的:

B b1 = { { 1 } };    // initializes b1.a.a
B b2 = { { 1, 2 } }; // initializes b1.a.a, b1.a.b
B b3 = { { 1 }, 2 }; // initializes b1.a.a, b1.b

但令我惊讶的是,VC++ 2013 还允许这些初始化而没有任何警告:

B b4 = { 1 };       // initializes b4.a.a
B b5 = { 1, 2 }; // initializes b5.a.a, b5.a.b
B b6 = { 1, 2, 3 }; // initializes b6.a.a, b6.a.b, b6.b

嵌套结构/类的平面初始化列表是标准 C++ 吗?

最佳答案

是的,这是标准的 C++。在聚合初始化中(并且在聚合初始化中,而不是在其他形式的列表初始化中),可以省略大括号,有效地扁平化聚合的包含层次结构。

关于C++:嵌套结构的平面初始化列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41212740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com