1 // PR c++/77446 2 // { dg-do compile { target c++14 } } 3 4 struct inner { 5 int field_a = 0; 6 bool field_b = false; 7 innerinner8 explicit constexpr inner(const int &arg_field_a) noexcept 9 : field_a{ arg_field_a } {} 10 }; 11 12 struct outer { 13 inner the_inner = inner{ 0 }; 14 15 constexpr outer() noexcept = default; set_innerouter16 constexpr int set_inner(const inner &arg_inner) { 17 the_inner = arg_inner; 18 return 0; 19 } 20 }; 21 22 constexpr inner another_inner{ 1 }; 23 static_assert( outer{}.set_inner( another_inner ) == 0, "" ); 24