https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63268
David Kastrup <dak at gnu dot org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |UNCONFIRMED Resolution|INVALID |--- --- Comment #2 from David Kastrup <dak at gnu dot org> --- class Deriv is not a class template. Deriv is an ordinary class with one base class being the specialized Bass<int>. Your argument (and the references) would be valid for template <class T> class Deriv : Bass<T> { ... } but that's not what the report is about. Digging through the C++11 draft standard, I don't actually see that case covered at all (but then the draft standard tends to give me a headache pretty fast). I see no reason why in a non-template class definition the unspecialized template name of a specialized base class should have any special state. Assuming that you get further in the standard before headaches set in than I do, could you cite the section that you derive your opinion from?