template<class T> struct A { typedef int B; void f(typename A::B); // illformed: typename required before A::B A::B b; // ok error detected };
It's in the DRAFT: 25 November 1997 14.6 Name resolution I don't know if that changed. If someone could confirm. -- Summary: No typedef required when type use in a function Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: minor Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: florent dot gallet at orange dot fr CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21783