https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101233
--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Patrick Palka from comment #5) > but one needs to include > <memory_resource> as well (for pmr::polymorphic_allocator). For libstdc++ the <vector> header only declares the pmr::vector alias, without defining prm::polymorphic_allocator. That means pmr::vector is an incomplete type unless you also include <memory_resource>. This is permitted by the standard, and avoids paying to include <memory_resource> if you don't plan to use the pmr types.