https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66001
--- Comment #1 from David Krauss <potswa at mac dot com> --- If a non-constexpr constructor is addend to struct dt, the behavior is different, and inconsistent between a bound temporary and an initializer_list sequence. #include <initializer_list> struct dt { dt() {} ~ dt() {} }; struct x { std::initializer_list< dt > f = { {} }; } cx; Result: In constructor ‘constexpr x::x()’: sorry, unimplemented: unexpected AST of kind try_block This program is accepted, though: struct dt { dt() {} ~ dt() {} }; struct x { dt && m = {}; } cx;