20 General utilities library [utilities]

20.10 Memory [memory]

20.10.8 Allocator traits [allocator.traits]

20.10.8.4 Other [allocator.traits.other]

The class template allocation_­result has the template parameters, data members, and special members specified above.
It has no base classes or members other than those specified.
template<class Allocator> [[nodiscard]] constexpr allocation_result<typename allocator_traits<Allocator>::pointer> allocate_at_least(Allocator& a, size_t n);
Returns: a.allocate_­at_­least(n) if that expression is well-formed; otherwise, {a.allocate(n), n}.