https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101227
David Blaikie <dblaikie at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dblaikie at gmail dot com
--- Comment #2 from David Blaikie <dblaikie at gmail dot com> ---
My guess, libstdc++'s std::optional uses is_default_constructible
unconditionally in some way, instantiating the template while the type
parameter is incomplete (because the nested class is incomplete until the
enclosing class is complete?).
Essentially something like this:
https://godbolt.org/z/6eohMofdb