The problem Consider the following type aliasing: template<std::size_t N> using square_matrix = std::array< std::array<int, N>, N>; Intuitively, one may try to use brace-initialization as follows: square_matrix<3> m = { {1, 2, 3}, {4, 5, 6}, {7,…

The problem Consider the following type aliasing: template<std::size_t N> using square_matrix = std::array< std::array<int, N>, N>; Intuitively, one may try to use brace-initialization as follows: square_matrix<3> m = { {1, 2, 3}, {4, 5, 6}, {7,…