static pointer allocate(Alloc& a, size_type n);
static pointer allocate(Alloc& a, size_type n, const_void_pointer hint);
static void deallocate(Alloc& a, pointer p, size_type n);
template <class T, class... Args>
static void construct(Alloc& a, T* p, Args&&... args);
Effects: Calls a.construct(p, stdβ::βforward<Args>(args)...) if that call is well-formed; otherwise, invokes β::βnew (static_Βcast<void*>(p)) T(stdβ::βforward<Args>(args)...).
template <class T>
static void destroy(Alloc& a, T* p);
static size_type max_size(const Alloc& a) noexcept;
Returns: a.max_Βsize() if that expression is well-formed; otherwise, numeric_Βlimits<size_Βtype>β::ββmax()/sizeof(value_Βtype).
static Alloc select_on_container_copy_construction(const Alloc& rhs);