| // PR c++/95369 |
| // { dg-do compile { target c++20 } } |
| |
| struct S { |
| unsigned a; |
| unsigned b; |
| constexpr S(unsigned _a, unsigned _b) noexcept: a{_a}, b{_b} { } |
| }; |
| |
| template<S s> struct X { }; |
| void g(S); |
| |
| struct Z { |
| S s; |
| Z() : s{.a = 1, .b = 2} { } // { dg-error "designated initializers|no matching function" } |
| }; |
| |
| S |
| f() |
| { |
| X<{.a = 1, .b = 2}> x; // { dg-error "designated initializers" } |
| S s{ .a = 1, .b = 2 }; // { dg-error "designated initializers|no matching function" } |
| S s2 = { .a = 1, .b = 2 }; // { dg-error "designated initializers" } |
| S s3 = S{ .a = 1, .b = 2 }; // { dg-error "designated initializers|no matching function" } |
| g({.a = 1, .b = 2}); // { dg-error "designated initializers" } |
| g(S{.a = 1, .b = 2}); // { dg-error "designated initializers|no matching function" } |
| return {.a = 1, .b = 2}; // { dg-error "designated initializers" } |
| } |