In a recent posting by Daveed Vandervoorde on comp.std.c++, apparently the code below is valid, yet the latest GCC snapshot (20050130) indicates that this is still an issue.
struct N { typedef char C; }; template<typename> struct B { typedef long L; }; template<typename T> struct S: N, B<T> { typedef int I; S<T>::I i; // Okay S<T>::C c; // Okay //S::L l; // Error: typename required }; Daveed writes: > It's a consequence of the resolution of core issue 224 > (which improves the definition of "dependent type"). -- Summary: typename requirement error Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: gianni at mariani dot ws CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19737