================================================ GCC 7 and clang work fine without the extra set of braces. std::array<T, N> is an aggregate that contains a C array. To initialize it, you need outer braces for the class itself and inner braces for the C array: https://stackoverflow.com/questions/12844475/why-cant-simple-initialize-with-braces-2d-stdarray