std::array は集約の初期化をサポートしていますが、ここで何が問題なのですか? コード (1) を使用すると、vc10.0 と g++ 4.7.2 の両方で初期化子が多すぎるというエラーが表示されます。しかし、代わりにコード (2) を使用すると、すべて問題ありません。
#include <array>
struct elem_t { char c; unsigned n;};
struct my_struct_t
{
int i;
// std::array<elem_t, 2> a; // (1) cause error
// elem_t a[2]; // (2) ok
};
int main()
{
std::array<int, 3> ai[] = {{1,2,3},{4,5,6}}; // ok
my_struct_t var[] =
{
{ 0, { {'a',1U}, {'b',2U}} }, // in question?
};
}