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