https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87604
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- We would just need to expose allocator_traits::__has_construct which already does the detection (and is how allocator_traits decides whether to use its default). As our std::allocator does still have a construct function we'd still need to special case that.