http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49669
--- Comment #4 from Kerrek SB <z0sh at sogetthis dot com> 2011-07-07 16:09:55 UTC --- You're right, it works in 4.6.1 - thanks! (Just updated.) Say, since you're here, if I change the definition of x from "Foo[2]" to "std::array<Foo,2>", should I be allowed to initialize it with Goo::Goo() : x{{Foo(4), Foo(5)}} { } At the moment, _only_ the following seems to work: Goo::Goo() : x({{Foo(4), Foo(5)}}) { } In particular, initialization of "Foo[2]" and "std::array<Foo,2>" is anything but "uniform" :-)