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