非常直截了当的问题是:为什么以下代码无法编译?
//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解决了同样的错误,但它没有要求(并且回复没有提供)解释为什么不接受这种语法。