annotate gcc/testsuite/g++.dg/cpp0x/dc3.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // { dg-do compile { target c++11 } }
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 struct X {};
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 struct B {
kono
parents:
diff changeset
6 int i;
kono
parents:
diff changeset
7 B (int _i) : i(_i) { }
kono
parents:
diff changeset
8 ~B () { i = 0; }
kono
parents:
diff changeset
9 };
kono
parents:
diff changeset
10
kono
parents:
diff changeset
11 template <typename T>
kono
parents:
diff changeset
12 struct A : public B {
kono
parents:
diff changeset
13 A () : B(-1) { }
kono
parents:
diff changeset
14 ~A () { }
kono
parents:
diff changeset
15 };
kono
parents:
diff changeset
16
kono
parents:
diff changeset
17 template <typename T>
kono
parents:
diff changeset
18 struct A<T*> : public B {
kono
parents:
diff changeset
19 A () : B(-1) { }
kono
parents:
diff changeset
20 A (int i) : A() { }
kono
parents:
diff changeset
21 A (double b) : A(static_cast<int>(b)) { }
kono
parents:
diff changeset
22 A (double b, double b2) : A(b2) { }
kono
parents:
diff changeset
23 ~A () { }
kono
parents:
diff changeset
24 };
kono
parents:
diff changeset
25
kono
parents:
diff changeset
26 void f_A () { A<X*> a(2.0, 3.0); }
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 struct C {
kono
parents:
diff changeset
29 C () { }
kono
parents:
diff changeset
30 virtual ~C() { }
kono
parents:
diff changeset
31 virtual int f () = 0;
kono
parents:
diff changeset
32 };
kono
parents:
diff changeset
33
kono
parents:
diff changeset
34 template <typename T>
kono
parents:
diff changeset
35 struct D : public C {
kono
parents:
diff changeset
36 int i;
kono
parents:
diff changeset
37 D (int _i) : C(), i(_i) { }
kono
parents:
diff changeset
38 };
kono
parents:
diff changeset
39
kono
parents:
diff changeset
40 template <>
kono
parents:
diff changeset
41 struct D<X> : public C {
kono
parents:
diff changeset
42 int i;
kono
parents:
diff changeset
43 D (int _i) : C(), i(_i) { }
kono
parents:
diff changeset
44 D () : D(-1) { }
kono
parents:
diff changeset
45 virtual ~D() { }
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
46 virtual int f () { return 0; }
111
kono
parents:
diff changeset
47 };
kono
parents:
diff changeset
48
kono
parents:
diff changeset
49 void f_D () { D<X>* d = new D<X>(); }
kono
parents:
diff changeset
50
kono
parents:
diff changeset
51 template <typename T>
kono
parents:
diff changeset
52 struct E {
kono
parents:
diff changeset
53 };
kono
parents:
diff changeset
54
kono
parents:
diff changeset
55 template <>
kono
parents:
diff changeset
56 struct E<int> {
kono
parents:
diff changeset
57 int i;
kono
parents:
diff changeset
58 E () : E(0) { }
kono
parents:
diff changeset
59 E (int _i) : i(_i) { }
kono
parents:
diff changeset
60 };
kono
parents:
diff changeset
61
kono
parents:
diff changeset
62 void f_E () { E<int> e; }