Namespaces
Variants

std::pmr::polymorphic_allocator<T>:: allocate

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (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) (until C++23)
T * allocate ( std:: size_t n ) ;
(desde C++17)

Asigna almacenamiento para n objetos de tipo T utilizando el recurso de memoria subyacente. Equivalente a return static_cast < T * > ( resource ( ) - > allocate ( n * sizeof ( T ) , alignof ( T ) ) ) ; .

Contenidos

Parámetros

n - el número de objetos para los cuales asignar almacenamiento

Valor de retorno

Un puntero al almacenamiento asignado.

Excepciones

Lanza std::bad_array_new_length si n > std:: numeric_limits < std:: size_t > :: max ( ) / sizeof ( T ) ; también puede lanzar cualquier excepción generada por la llamada a resource ( ) - > allocate .

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 3038 C++17 allocate podría asignar almacenamiento de tamaño incorrecto lanza length_error en su lugar
LWG 3237 C++17 la excepción lanzada por allocate era inconsistente con std::allocator::allocate hecho consistente

Véase también

asigna memoria alineada en bruto del recurso subyacente
(función miembro pública)
asigna memoria en bruto adecuada para un objeto o un array
(función miembro pública)
(C++20)
asigna y construye un objeto
(función miembro pública)
[static]
asigna almacenamiento no inicializado usando el asignador
(función miembro estática pública de std::allocator_traits<Alloc> )
asigna memoria
(función miembro pública de std::pmr::memory_resource )