A std::array<T> - это, по сути, массив C-стиля, завернутый в struct. Для инициализации struct требуются скобки, и для инициализации массивов также требуются фигурные скобки. Поэтому мне нужны две пары фигурных скобок:
std::array<int, 5> a = {{1, 2, 3, 4, 5}};
Но в большинстве примеров кода, который я видел, используется только одна пара фигурных скобок:
std::array<int, 5> b = {1, 2, 3, 4, 5};
Как это разрешено, и имеет ли он какие-либо преимущества или недостатки по сравнению с первым соглашением?