OSDN Git Service

PR c++/36628
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / cpp0x / initlist4.C
1 // Test for initializer-list 'explicit' rule
2 // { dg-options "-std=c++0x" }
3
4 struct A
5 {
6   explicit A(int,int);
7   operator bool();
8 };
9
10 A f(A)
11 {
12   A{1,2};
13   A a1{1,2};
14   new A{1,2};
15   if (A a5{1,2});
16
17   A({1,2});                     // { dg-error "explicit" }
18   A a2({1,2});                  // { dg-error "explicit" }
19   A a3 = {1,2};                 // { dg-error "explicit" }
20   new A({1,2});                 // { dg-error "explicit" }
21   f({1,2});                     // { dg-error "explicit" }
22   a1 = {1,2};                   // { dg-error "explicit" }
23   if (A a4 = {1,2});            // { dg-error "explicit" }
24   return {1,2};                 // { dg-error "explicit" }
25 }
26
27 struct B
28 {
29   A a;
30   B(): a{1,2} {}
31   B(const B&): a({1,2}) {}      // { dg-error "explicit" }
32 };