| // PR c++/77446 | |
| // { dg-do compile { target c++14 } } | |
| struct inner { | |
| int field_a = 0; | |
| bool field_b = false; | |
| explicit constexpr inner(const int &arg_field_a) noexcept | |
| : field_a{ arg_field_a } {} | |
| }; | |
| struct outer { | |
| inner the_inner = inner{ 0 }; | |
| constexpr outer() noexcept = default; | |
| constexpr int set_inner(const inner &arg_inner) { | |
| the_inner = arg_inner; | |
| return 0; | |
| } | |
| }; | |
| constexpr inner another_inner{ 1 }; | |
| static_assert( outer{}.set_inner( another_inner ) == 0, "" ); |