Proposed resolution:
This wording is relative to N4582.
Modify [memory.resource.class] as indicated:
class memory_resource { […]protectedprivate: virtual void* do_allocate(size_t bytes, size_t alignment) = 0; virtual void do_deallocate(void* p, size_t bytes, size_t alignment) = 0; virtual bool do_is_equal(const memory_resource& other) const noexcept = 0; };
Modify [memory.resource.prot] as indicated:
[Drafting note: I don't know whether it's too late to change the section mnemonic [memory.resource.prot] to e.g. [memory.resource.priv] or perhaps [memory.resource.virt].]
memory_resource
protectedprivate virtual member functions [memory.resource.prot]