std :: inicialización de <T> matriz

A std::array<T> es esencialmente una matriz de estilo C envuelta en unastruct. La inicialización destructs requiere llaves, y la inicialización de matrices también requiere llaves. Entonces necesito dos pares de llaves:

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

Pero la mayoría del código de ejemplo que he visto solo usa un par de llaves:

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

¿Cómo es que esto está permitido y tiene algún beneficio o inconveniente en comparación con el primer acercamiento?

Respuestas a la pregunta(2)

Su respuesta a la pregunta