The feature we're talking about is polymorphic allocators. To be specific, the std::pmr::polymorphic_allocator and the polymorphic std::pmr::memory_resource class that the allocator uses to allocate memory.
In essence, it allows you to easily chain memory resources to make the best use of your memory. Chains can be as simple as one resource that reserves a big chunk and distributes it, falling back to another that simply calls new and delete if it depletes memory. They can also be much more complex: you can build a long chain of memory resources that handle pools of different sizes, offer thread-safety only when needed, bypass the heap and go for the system's memory directly, return you the last freed chunk of memory to provide cache hotness, and do other fancy stuff. Not all of these capabilities are offered by the standard polymorphic memory resources, but thanks to their design, it's easy to extend them.
Let's first tackle the topic...