http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32534
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID --- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-11-03 18:47:32 UTC --- Indeed, [basic.start.init] p2 says so, thanks. An ordering could be enforced by explicitly specializing the static data member: template<> A B<int>::a = A(); or in C++11 template<> A B<int>::a{}; Or in C++11 by making A's constructor constexpr