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