Brace elision in std::array initialization
问题 Suppose there's an std::array to be initialized. It's okay if using double braces: std::array<int, 2> x = {{0, 1}}; std::array<int, 2> x{{0, 1}}; It's also okay to use single braces in the good old aggregate initialization, as the brace elision will take care of the missing braces: std::array<int, 2> x = {0, 1}; However, is it okay to use list-initialization with single braces? GCC accepts it, Clang rejects it with "cannot omit braces around initialization of subobject when using direct list