https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114898
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- Standalone testcase: struct nullopt_t { enum class Hidden { Token }; explicit constexpr nullopt_t(Hidden) noexcept { } }; struct in_place_t { explicit constexpr in_place_t() = default; }; template<typename T> struct optional { template<typename U = T> optional(U&&) { } optional(in_place_t); optional(nullopt_t); }; struct Widget { int i[1]; }; optional<Widget> r1( {{}} ); optional<Widget> r2{ {} };