http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54948
Bug #: 54948 Summary: template unnecessarily displayed as "A< template-parameter-1-1 >" not "A<T>" Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Keywords: diagnostic Severity: enhancement Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: r...@gcc.gnu.org template<typename> struct A; template<typename T> struct A { A(Y); }; A<int> a; This invalid code produces: tp.cc: In instantiation of 'struct A<int>': tp.cc:5:8: required from here tp.cc:3:36: error: 'A< <template-parameter-1-1> >::Y' has incomplete type template<typename T> struct A { A(Y); }; ^ tp.cc:3:29: error: declaration of 'struct A<int>' template<typename T> struct A { A(Y); }; ^ This is correct, but "A< <template-parameter-1-1> >::Y" is rather ugly. At the point of the error the parameter has a name, so "A<T>::Y" could be shown instead.