Por que não é possível inicializar simples (com chaves) 2D std :: array? [duplicado]

Duplicata Possível:
c ++ porque o comportamento de initializer_list para std :: vector e std :: array são diferentes

Eu defini matriz 2D simples (3X2):

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

Fiquei surpreso que essa inicialização não funcionou, com o erro gcc4.5:too many initializers for 'std::array<std::array<int, 3u>, 2u>'

Por que não posso usar essa sintaxe?

Eu encontrei soluções alternativas, uma muito engraçada com chaves extras, mas apenas me pergunto por que a primeira abordagem mais fácil não é válida?

Soluções Alternativas:

  // EXTRA BRACES
  std::array<std::array<int,3>,2> a {{
    {1,2,3},
    {4,5,6}
  }};

  // EXPLICIT CASTING
  std::array<std::array<int,3>,2> a {
    std::array<int,3>{1,2,3},
    std::array<int,3>{4,5,6}
  };

[ATUALIZAR]

Ok, graças ao KerrekSB e comentários eu recebo a diferença. Então parece que há poucas chaves no meu exemplo, como neste exemplo C:

struct B {
  int array[3];
};
struct A {
  B array[2];
};

B b = {{1,2,3}};
A a = {{
     {{1,2,3}},
     {{4,5,6}}
}};

questionAnswers(1)

yourAnswerToTheQuestion