https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92193
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- This makes the diagnostics for std::vector diabolical. We hit a nice static assertion saying something like: /home/jwakely/gcc/12/include/c++/12.0.0/bits/stl_uninitialized.h:90:56: error: static assertion failed: result type must be constructible from input type And then the compiler just keeps on rollin' ... /home/jwakely/gcc/12/include/c++/12.0.0/bits/stl_construct.h:115:28: error: no matching function for call to 'construct_at(X*&, X&)' ... /home/jwakely/gcc/12/include/c++/12.0.0/bits/stl_construct.h:96:17: error: use of deleted function 'X::X(const X&)' ... /home/jwakely/gcc/12/include/c++/12.0.0/bits/stl_construct.h:119:7: error: use of deleted function 'X::X(const X&)' ... The 23_containers/vector/cons/89164.cc test produces 28 lines of errors in C++17 mode, and 159 lines of errors in C++20 mode, because everything is constexpr.