// PR c++/66450 // { dg-do compile { target c++11 } } struct foo { constexpr foo(int a); constexpr foo(int a, int b, int c): a{a}, b{b}, c{c} {} int a, b, c; }; constexpr foo make_foo(int a) { return foo{a, a+1, a+2}; } constexpr foo::foo(int a): foo{make_foo(a)} {} int main() { constexpr const foo f{3}; static_assert(f.a == 3, ""); static_assert(f.b == 4, ""); static_assert(f.c == 5, ""); }