1 // Test for initializer-list 'explicit' rule
2 // { dg-do compile { target c++11 } }
3 
4 struct A
5 {
6   explicit A(int,int);
7   operator bool();
8 };
9 
f(A)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;
BB30   B(): a{1,2} {}
BB31   B(const B&): a({1,2}) {}	// { dg-error "explicit" }
32 };
33