http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52126
--- Comment #6 from fabien at gcc dot gnu.org 2012-02-16 09:57:20 UTC --- (In reply to comment #5) > (In reply to comment #2) > > Further investigation shows that the issue appears only when inheritance > > from > > the template class (class B : private A<T>) is provided explicitly. > > According > > to the standard a nested class defined inside a class template is implicitly > > template as well. > > I don't think that's relevant. The point is that the injected-class-name 'A' > and 'A<T>' both refer to the class template, and should work equivalently. Yes, they should. The first bug is that 'A' does not behave like 'A<T>' -- I have fixed it. The second bug is that 'A<T>' as a base for a nested class does not currently work if A is also an enclosing class. I have tested a patch, but it is not quite ready.