http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45964
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason at redhat dot com --- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> 2010-10-11 11:56:23 UTC --- (In reply to comment #2) > Okey, the template keyword that I meant was > > const int A< a>::B<b>::value = A<a>::template B<b>::C::value; > ^^^^^^^^ > > I think this one is required. Older compilers require it, and on newer > compilers it seems to be optional. IMO this is not optional because "C" > depends > on the "b" template paramter. Yes, but I disagree that it's required. I was wrong when I said it's not a member template specialization, but I think 'template' is not required because B<b> refers to a member of the current instantiation, as defined by 14.6.2.1 Jason, could you comment? Was this a bug in older versions of G++ which is now fixed?