Parsing problem with A::B::C

Todd Veldhuizen todd@p200.cybervision.com
Thu Sep 25 04:58:00 GMT 1997


egcs-970917 has a parse error on this example.  To the best of my knowledge
it's proper.  EDG parses it correctly.

template<class T>
struct A {
    typedef T T1;
};

template<class T>
struct B {
    typedef T T2;
};

template<class T>
struct C {
};

template<class E>
C<typename E::T2::T1>
foo (E)
{
    return C<typename E::T2::T1>();
}

void test()
{
    foo(B<A<int> >());
}




More information about the Gcc-bugs mailing list