1// { dg-do compile } 2 3// Copyright (C) 2001 Free Software Foundation, Inc. 4// Contributed by Nathan Sidwell 29 Dec 2001 <nathan@codesourcery.com> 5 6// PR 4361. Template conversion operators were not overloaded. 7 8template <class T> struct Second; 9 10template<class T> struct First 11{ 12 int Foo (); 13 14 template <class U> operator Second<U>(); 15 template <class U> operator First<U>(); 16}; 17 18template <class T> int First<T>::Foo () 19{} // This is here to make sure we didn't smash Foo's decl in the 20 // method vector 21 22struct B { }; 23struct D { }; 24 25void Foo () 26{ 27 First<B> (First<D>::*pf)() = &First<D>::operator First<B>; 28} 29