There are no changes to the module map.
Bit has been added in C++20.
please use size_t as in the Standard.
Please add some comment or a link to the documentation of this non-standard attribute.
As a side not in C++20 I would have preferred std::has_single_bit instead.
Can you add a test that triggers this _LIBCPP_ASSERT?
Can you use /* ... */ like the other synosis do. That makes it easier to copy paste code from the Standard.
Please add the comparison operators too.
What is the reason to put the destructor in the dylib?
When keeping it in the dylib it needs _AVAILABLITY_MACROS, grep for _LIBCPP_AVAILABILITY_FORMAT for an example.
Can you use the comparision_tests.h and validate the noexcept status and whether the function returns a bool.
Why bother to use std::addressof? There is no memory_resource::operator& and it's not a template, so ADL isn't going to find operator& in any user namespaces. Is that a policy? It seems like unnecessary obfuscation.
It's the key function, so the vtable will be generated where this function is defined. If it's inline, the vtable gets generated in every TU that uses memory_resource. Maybe that's OK though.