------- Additional Comments From mmitchel at gcc dot gnu dot org 2005-08-28 18:11 ------- The fundamental problem here is that G++ is not honoring [temp.inst], which requires that:
"in particular, the initialization (and any associated side-effects) of a static data member does not occur unless the static data member is itself used in a way that requires the definition of the static data member to exist." It is instead performing the initialization immediately when instantiating "A<Derived*>". I am looking into the issue. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23099