Memory resources in the standard library come in two flavors. Some of them are actual class types, of which you can create instances; and some of them are "anonymous" class types accessed only via singleton functions. Generally you can predict which is which by thinking about whether two objects of the type could ever possibly be "different," or whether the type is basically a singleton anyway.
The simplest memory resource in the <memory_resource> header is the "anonymous" singleton accessed via std::pmr::null_memory_resource(). The definition of this function is something like this:
class UNKNOWN : public std::pmr::memory_resource {
void *do_allocate(size_t, size_t) override {
throw std::bad_alloc();
}
void do_deallocate(void *, size_t, size_t) override {}
bool do_is_equal(const...