http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57905
Bug ID: 57905 Summary: braced-init-list allowed in default template-argument Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: potswa at mac dot com [dcl.fct.default] 8.3.6/3 says A default argument shall be specified … in a template-parameter (14.1); in the latter case, the initializer-clause shall be an assignment-expression. So a default template-argument cannot be a braced-init-list, yet this is accepted without warning when using -Wall: template< int i = {} > struct s; Clang rejects it outright. I thought it was their bug but just happened to be reading now about default arguments.