template struct X { typedef int type; }; template struct O { struct I { operator typename X::type (); }; }; template O::I::operator typename X::type () {}