Почему нельзя просто инициализировать (с фигурными скобками) 2D std :: array? [Дубликат]

Возможный дубликат:
c ++, почему поведение initializer_list для std :: vector и std :: array отличается

Я определил простой 2D массив (3X2):

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

Я был удивлен, что эта инициализация не работает, с ошибкой gcc4.5:too many initializers for 'std::array<std::array<int, 3u>, 2u>'

Почему я не могу использовать этот синтаксис?

Я нашел обходные пути, один очень смешной с дополнительными скобками, но просто удивляюсь, почему первый, самый простой подход не действителен?

обходные:

  // 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}
  };

[ОБНОВИТЬ]

Хорошо, благодаря KerrekSB и комментариям я получаю разницу. Таким образом, кажется, что в моем примере слишком мало скобок, как в этом примере C:

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

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

Ответы на вопрос(1)

Ваш ответ на вопрос