В стандарте С++ 14 инициализация std::array
может выполняться с единственными фигурными скобками (см. Http://en.cppreference.com/w/cpp/container/array):
Это, однако, не работает для std::array
из std::pair
.
Почему эти работы:
std::pair<int, int> p { 1, 2 };
std::array<int, 3> a {1, 2, 3};
но это не работает:
std::array<std::pair<int, int>, 3> b {{1, 11}, {2, 22}, {3, 33}};
в то время как это снова работает?
std::array<std::pair<int, int>, 3> b {{{1, 11}, {2, 22}, {3, 33}}};
Кроме того, для завершения инициализация старого старого массива работает с одиночными скобками
std::pair<int, int> c[3] {{1, 11}, {2, 22}, {3, 33}};