http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56991
--- Comment #4 from Daniel Krügler <daniel.kruegler at googlemail dot com> --- (In reply to Matheus Izvekov from comment #2) > I get also a similar bug: > > #include <initializer_list> > > //is accepted by gcc > constexpr std::initializer_list<int> good1 = { 1, 2, 3 }; > > struct foo { int a, b; }; > > //still ok > constexpr foo good2 = { 1, 2 }; > > //gcc rejects this > constexpr std::initializer_list<foo> bad = { { 1, 2 }, { 3, 4} }; A variation of the last line also produces the same error: constexpr std::initializer_list<foo> bad2 = { good2, good2 }; I can confirm that the error also occurs for the trunk, tested with gcc 4.9.0 20130519 (experimental).