http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52327
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-02-21 16:54:45 UTC --- Virtual bases are constructed by the most-derived class, which is Initializer<Top> in your "templated copy" case, and the ctor-initializer-list for Initializer<Top> doesn't construct the Base and Derived classes, so they are default constructed. i.e. G++ is correct.