How do you initialize (through initializer lists) a multidimensional std::array in C++11?
c++, c++11
Solution
Try to add one more pair `{}` to ensure we're initializing the internal C array.
std::array<std::array<int, 2>, 2> shape = {{ {1, 1},
{1, 1} }};
Or just drop all the brackets.
std::array<std::array<int, 2>, 2> shape = { 1, 1,
1, 1 };
Problem
I am trying to initialize a 2D std::array trough initializer lists however the compiler tells me that there are too many initializers. e.g.: ``` std::array<std::array<int, 2>, 2> shape = { {1, 1}, {1, 1} }; ``` Compiler error: error: too many initializers for `‘std::array<std::array<int, 2ul>, 2ul>’` But clearly there aren't too many. Am I doing something wrong?