]> gcc.gnu.org Git - gcc.git/blob - gcc/testsuite/g++.dg/cpp0x/dc3.C
PR c++/92590 - wrong handling of inherited default ctor.
[gcc.git] / gcc / testsuite / g++.dg / cpp0x / dc3.C
1 // { dg-do compile { target c++11 } }
2
3 struct X {};
4
5 struct B {
6 int i;
7 B (int _i) : i(_i) { }
8 ~B () { i = 0; }
9 };
10
11 template <typename T>
12 struct A : public B {
13 A () : B(-1) { }
14 ~A () { }
15 };
16
17 template <typename T>
18 struct A<T*> : public B {
19 A () : B(-1) { }
20 A (int i) : A() { }
21 A (double b) : A(static_cast<int>(b)) { }
22 A (double b, double b2) : A(b2) { }
23 ~A () { }
24 };
25
26 void f_A () { A<X*> a(2.0, 3.0); }
27
28 struct C {
29 C () { }
30 virtual ~C() { }
31 virtual int f () = 0;
32 };
33
34 template <typename T>
35 struct D : public C {
36 int i;
37 D (int _i) : C(), i(_i) { }
38 };
39
40 template <>
41 struct D<X> : public C {
42 int i;
43 D (int _i) : C(), i(_i) { }
44 D () : D(-1) { }
45 virtual ~D() { }
46 virtual int f () { return 0; }
47 };
48
49 void f_D () { D<X>* d = new D<X>(); }
50
51 template <typename T>
52 struct E {
53 };
54
55 template <>
56 struct E<int> {
57 int i;
58 E () : E(0) { }
59 E (int _i) : i(_i) { }
60 };
61
62 void f_E () { E<int> e; }
This page took 0.039939 seconds and 5 git commands to generate.