std::pmr::polymorphic_allocator<T>::allocate
From cppreference.com
< cpp | memory | polymorphic allocator
C++
Feature test macros (C++20)
Concepts library (C++20)
Metaprogramming library (C++11)
Ranges library (C++20)
Filesystem library (C++17)
Concurrency support library (C++11)
Execution control library (C++26)
Memory management library
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
Garbage collector support (until C++23)
(exposition only*)
(C++11)
(C++23)
(C++11)
(C++17)
(C++11)
(C++11)
(C++20)
(C++20)
(C++17)
(C++11)
(C++17)
(C++20)
(C++17)
(C++17)
(C++17)
(C++17)
(C++17)
(C++17)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++17)
(C++17)
(C++17)
(C++17)
(C++17)
(C++17)
(C++17)
(C++17)
(until C++20*)
(until C++20*)
(until C++20*)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)
(C++11)
(C++17)
(C++20)
(C++17)
(C++11)
(C++11)
(C++11)
(until C++17*)
(C++11)
(C++17)
(C++26)
(C++26)
(C++11)
(C++11)
(C++11)
(C++23)
(C++23)
(C++11)
(C++20)
(C++11)
(C++11)
(C++20)
(C++26)
std::pmr::polymorphic_allocator
Member functions
polymorphic_allocator::allocate
(C++20/26*)
Non-member functions
(until C++20)
T* allocate( std::size_t n );
(since C++17)
Allocates storage for n objects of type T
using the underlying memory resource. Equivalent to return static_cast<T*>(resource()->allocate(n * sizeof(T), alignof(T)));.
[edit] Parameters
n
-
the number of objects to allocate storage for
[edit] Return value
A pointer to the allocated storage.
[edit] Exceptions
Throws std::bad_array_new_length if n > std::numeric_limits <std::size_t >::max() / sizeof(T); may also throw any exceptions thrown by the call to resource()->allocate.
[edit] Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
LWG 3038 | C++17 | allocate might allocate storage of wrong size
|
throws length_error instead
|
LWG 3237 | C++17 | the exception thrown by allocate was inconsistent with std::allocator::allocate
|
made consistent |
[edit] See also
[static]
(public static member function of
std::allocator_traits<Alloc>
) [edit]