Merge with main truk.
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / initlist4.C
blob22e6b456a7fcd3bd54c86c5e455c779c781a773d
1 // Test for initializer-list 'explicit' rule
2 // { dg-do compile { target c++11 } }
4 struct A
6   explicit A(int,int);
7   operator bool();
8 };
10 A f(A)
12   A{1,2};
13   A a1{1,2};
14   new A{1,2};
15   if (A a5{1,2});
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" }
27 struct B
29   A a;
30   B(): a{1,2} {}
31   B(const B&): a({1,2}) {}      // { dg-error "explicit" }