https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92067
--- Comment #3 from Jason Merrill <jason at gcc dot gnu.org> --- (In reply to Jonathan Wakely from comment #2) > We need to be careful about this in SFINAE contexts. It can't be a hard > error, because it's extremely common for constructors to be constrained with > std::is_constructible, and for overload resolution to consider constructors > for incomplete types. Hmm? but the standard says that a precondition for std::is_constructible is the type being complete, and we enforce that with a static_assert (since PR71579). Why would it be a problem for the builtin to enforce it as well? I'm also not sure why it's a problem that the builtin doesn't enforce it, for the same reason. But I guess it might as well for consistency.