std::allocator_traits::allocate

From cppreference.com
Dynamic memory management
Uninitialized storage
(C++17)
Garbage collection support
Miscellaneous
(C++20)
(C++11)
(C++11)
C Library
Low level memory management
Defined in header <memory>
(1)
static pointer allocate( Alloc& a, size_type n );
(since C++11)
(until C++20)
[[nodiscard]] static pointer allocate( Alloc& a, size_type n );
(since C++20)
(2)
static pointer allocate( Alloc& a, size_type n,
const_void_pointer hint );
(since C++11)
(until C++20)
[[nodiscard]] static pointer allocate( Alloc& a, size_type n,
const_void_pointer hint );
(since C++20)

Uses the allocator a to allocate n*sizeof(Alloc::value_type) bytes of uninitialized storage.

1) Calls a.allocate(n)
2) Additionally passes memory locality hint hint. Calls a.allocate(n, hint) if possible. If not possible (e.g. a has no two-argument member function allocate()), calls a.allocate(n)

Parameters

a - allocator to use
n - the number of objects to allocate storage for
hint - pointer to a nearby memory location

Return value

The pointer returned by the call to a.allocate(n)

See also

allocates uninitialized storage
(public member function of std::allocator)