std::allocator_traits<Alloc>:: allocate
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definido en el encabezado
<memory>
|
||
|
static
pointer allocate
(
Alloc
&
a, size_type n
)
;
|
(1) |
(desde C++11)
(constexpr desde C++20) |
|
static
pointer allocate
(
Alloc
&
a, size_type n, const_void_pointer hint
)
;
|
(2) |
(desde C++11)
(constexpr desde C++20) |
Utiliza el asignador a para asignar n * sizeof ( Alloc :: value_type ) bytes de almacenamiento no inicializado. Se crea un array de tipo Alloc :: value_type [ n ] en el almacenamiento, pero ninguno de sus elementos está construido.
allocate
), llama
a.
allocate
(
n
)
.
Contenidos |
Parámetros
| a | - | asignador a utilizar |
| n | - | número de objetos para los que asignar almacenamiento |
| hint | - | puntero a una ubicación de memoria cercana |
Valor de retorno
El puntero devuelto por la llamada a a. allocate ( n ) .
Notas
Alloc::allocate
no estaba obligado a crear objetos de array hasta
P0593R6
, que hizo que el uso de allocators no predeterminados para
std::vector
y otros contenedores no estuviera bien definido según una lectura estricta de la especificación del lenguaje core.
Después de llamar a
allocate
y antes de la construcción de elementos, la aritmética de punteros de
Alloc
::
value_type
*
está bien definida dentro del array asignado, pero el comportamiento es indefinido si se accede a los elementos.
Ejemplo
|
Esta sección está incompleta
Motivo: sin ejemplo |
Véase también
|
asigna almacenamiento no inicializado
(función miembro pública de
std::allocator<T>
)
|