以下来自于cppref的指定初始化器:
struct A { int x; int y; int z; };
A b{.x = 1, .z = 2}; // ok, b.y initialized to 0
在C++中,默认情况下,所有基本类型都会进行默认初始化而不是零初始化。
为什么指定初始值器会将数据成员进行零初始化?
A b{};
将会对所有成员进行零初始化。在扩展语法时为什么要改变这一点呢? - StoryTeller - Unslander Monica