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};
Как это разрешено, и имеет ли он какие-либо преимущества или недостатки по сравнению с первым соглашением?