111
|
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
|
|
8 template <class T> struct Second;
|
|
9
|
|
10 template<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
|
|
18 template <class T> int First<T>::Foo ()
|
131
|
19 { return 0; } // This is here to make sure we didn't smash Foo's decl in the
|
|
20 // method vector
|
111
|
21
|
|
22 struct B { };
|
|
23 struct D { };
|
|
24
|
|
25 void Foo ()
|
|
26 {
|
|
27 First<B> (First<D>::*pf)() = &First<D>::operator First<B>;
|
|
28 }
|