2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / g++.dg / template / conv2.C
bloba0d08df55835be2f0c0547dc80f9c08d7d03cae5
1 // { dg-do run }
3 // Copyright (C) 2001 Free Software Foundation, Inc.
4 // Contributed by Nathan Sidwell 29 Dec 2001 <nathan@codesourcery.com>
6 // PR 4361. Template conversion operators were not overloaded.
8 class C
10 public:
12   operator float () {return 2;}
13   
14   operator int () 
15   {
16     return 0;
17   }
18   
19   template<typename T>
20   operator int ()
21   { return 1;
22   }
25 int main ()
27   C p;
28   int r;
30   r = p.operator int ();
31   if (r)
32     return r;
33   r = static_cast <int> (p);
35   if (r)
36     return r + 2;
37   
38   return 0;