使用initalizer列表初始化多维std :: array的语法

时间:2016-03-08 17:20:27

标签: c++ c++11 initialization initializer-list stdarray

非常直截了当的问题是:为什么以下代码无法编译?

//foo.cpp
#include <array>
int main() {
  std::array<std::array<int, 2>, 2> a = {{0,1},{2,3}};
  return 0;
}

我得到的错误(gcc-4.9.2)是

foo.cpp: In function ‘int main()’:
foo.cpp:4:55: error: too many initializers for ‘std::array<std::array<int, 2ul>, 2ul>’
     std::array<std::array<int, 2>, 2> a = {{0,1},{2,3}};

This question解决了同样的错误,但它没有要求(并且回复没有提供)解释为什么不接受这种语法。

0 个答案:

没有答案