https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64135
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- One option would be to just rename the base class (possibly only the default new_allocator one, as selecting a different allocator implementation is an explicit choice, and so users can deal with the consequences). Another option would be to drop the base class from std::allocator when configured to derive from new_allocator, and just inline that code into std::allocator. That's an ABI break, because it would no longer have a base class of type __gnu_cxx::new_allocator, but maybe it's one that wouldn't cause any problems in practice.