std :: array initialization

A std :: array по сути является массивом в стиле C, заключенным в структуру struct . Инициализация структуры struct требует фигурных скобок, а для инициализации массивов также необходимы фигурные скобки. Итак, мне нужны две пары фигурных скобок:

std::array<int, 5> a = {{1, 2, 3, 4, 5}};

Но в большинстве примеров кода, которые я видел, используется только одна пара фигурных скобок:

std::array<int, 5> b = {1, 2, 3, 4, 5};

Почему это разрешено, и есть ли у него какие-либо преимущества или недостатки по сравнению с первым подходом?

12
задан fredoverflow 14 January 2012 в 15:54
поделиться