https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108619
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> --- With clang and libc++ we get: /opt/compiler-explorer/clang-trunk-20230131/bin/../include/c++/v1/__memory/uninitialized_algorithms.h:597:3: error: static assertion failed due to requirement '__is_cpp17_move_insertable<b::alloc<a>, void>::value': The specified type does not meet the requirements of Cpp17MoveInsertable static_assert(__is_cpp17_move_insertable<_Alloc>::value, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Which I think is the best error message really. libstdc++v3 should add a similar static assert I think.