// PR c++/7906 // Origin: Marcel Loose // { dg-do compile } template struct A { typedef int X; }; template struct B { typedef A Y; struct C { operator typename Y::X() const; }; }; template B::C::operator typename B::Y::X() const { return 0; } B b;