comparison gcc/testsuite/g++.dg/template/conv3.C @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
comparison
equal deleted inserted replaced
68:561a7518be6b 111:04ced10e8804
1 // { dg-do run }
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 <typename T> struct C
9 {
10 operator T ()
11 {
12 return 0;
13 }
14 template <typename T2> operator T2 ()
15 {
16 return 1;
17 }
18 int Foo ()
19 {
20 return operator T ();
21 }
22 template <typename T2> int Baz ()
23 {
24 return static_cast <int> (operator T2 ());
25 }
26 };
27
28 int main ()
29 {
30 int r;
31 C<int> c;
32
33 r = c.Foo ();
34 if (r)
35 return 1;
36 r = c.Baz<int> ();
37 if (r)
38 return 2;
39 r = c.Baz<float> ();
40 if (!r)
41 return 3;
42 return 0;
43 }