我想知道这个结构是否:
std::array<int, 10> array { };
Run Code Online (Sandbox Code Playgroud)
等价于:
std::array<int, 10> array { { } };
Run Code Online (Sandbox Code Playgroud)
好吧,它们都编译并且给出相同的结果:
for (auto e : array) {
std::cout << e << ", ";
}
Run Code Online (Sandbox Code Playgroud)
出去:
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Run Code Online (Sandbox Code Playgroud)
我知道要通过选定的值初始化 std::array 我必须使用双大括号,因为聚合初始化。但我不知道单括号的表现如何。所以,问题是:
在 C++11 中通过单花括号初始化结构体完全正确吗?(接下来结构体的所有字段都将被清零)
编辑:正如@dyp 指出的那样,我在帖子中的问题更为笼统。假设我的问题是关于仅包含琐碎元素的结构。