struct MyClass
{
std::array<int, 10> stdArr;
MyClass() : stdArr()
{}
};
MyClass c;
Run Code Online (Sandbox Code Playgroud)
问题:
c.stdArr零初始化?我自己的矛盾答案:
它是零初始化的:
std::array希望表现得像一个c-array.如果在上面的例子中stdArr是一个c-array,它将stdArr()在初始化列表中进行零初始化.我希望member()在初始化列表中写入初始化对象.
它不是零初始化的:
std::array 通常只有一个成员,在我的情况下 int[10] _Elems;int[N]都不是默认初始化的.std::array 是一种聚合类型,暗示它是默认构造的._Elems,我认为它不是零初始化.std::array根据C++ 11标准,正确的行为是什么?