1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
// PR c++/7906 // Origin: Marcel Loose <loose@astron.nl> // { dg-do compile } template <typename> struct A { typedef int X; }; template <typename T> struct B { typedef A<T> Y; struct C { operator typename Y::X() const; }; }; template <typename T> B<T>::C::operator typename B<T>::Y::X() const { return 0; } B<int> b;