std::allocator_traits<Alloc>::allocate
From cppreference.com
< cpp | memory | allocator traits
C++
Memory management library
|
|
|
Defined in header <memory>
|
||
static pointer allocate( Alloc& a, size_type n ); |
(1) | (since C++11) (constexpr since C++20) |
static pointer allocate( Alloc& a, size_type n, const_void_pointer hint );
|
(2) | (since C++11) (constexpr since C++20) |
Uses the allocator a to allocate n * sizeof(Alloc::value_type) bytes of uninitialized storage. An array of type Alloc::value_type[n]
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).
Notes
Alloc::allocate
was not required to create array object until P0593R6, which made using non-default allocator for std::vector
After calling allocate
and before construction of elements, pointer arithmetic of
Alloc::value_type*
Example
This section is incomplete Reason: no example |
See also
allocates uninitialized storage (public member function of std::allocator<T> ) |