1 // { dg-do run }
2 // { dg-options -std=c++0x }
3 
4 struct A
5 {
6   int i = 42;
7 };
8 
9 struct B
10 {
11   int i = 42;
BB12   B() { }
BB13   B(int i): i(i) { }
14 };
15 
16 template <class T, T t>
17 struct C
18 {
19   T m = t;
20 };
21 
22 template <class T, T t>
23 struct D
24 {
25   T m = t;
DD26   D() { }
DD27   D(T m):m(m) { }
28 };
29 
main()30 int main()
31 {
32   A a1;
33   if (a1.i != 42) return 1;
34   A a2{};
35   if (a2.i != 42) return 2;
36   A a3[1];
37   if (a3[0].i != 42) return 3;
38 
39   B b1;
40   if (b1.i != 42) return 3;
41   B b2 (24);
42   if (b2.i != 24) return 4;
43 
44   C<int,3> c1;
45   if (c1.m != 3) return 5;
46   C<int,5> c2 {};
47   if (c2.m != 5) return 6;
48 
49   D<int,3> d1;
50   if (d1.m != 3) return 7;
51   D<int,3> d2 (5) ;
52   if (d2.m != 5) return 8;
53 }
54