Pet*_*ter 25 c++ c++11 stdarray
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标准,正确的行为是什么?
jua*_*nza 20
是
c.stdArr零初始化?
是
如果是 - 为什么?
该执行值初始化的stdArr:
MyClass() : stdArr() {}
Run Code Online (Sandbox Code Playgroud)
在此上下文中,值初始化的效果是对象的零初始化.
编辑:什么是聚合和POD中有大量相关信息......?
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           5479 次  |  
        
|   最近记录:  |