std:: allocator_traits
|
Definido en el encabezado
<memory>
|
||
|
template
<
class
Alloc
>
struct allocator_traits ; |
(desde C++11) | |
La plantilla de clase
allocator_traits
proporciona la forma estandarizada de acceder a varias propiedades de los
Allocator
s
. Los contenedores estándar y otros componentes de la biblioteca estándar acceden a los allocators a través de esta plantilla.
|
Es posible utilizar cualquier tipo de clase como asignador, siempre que la especialización proporcionada por el usuario de
|
(until C++23) |
|
Un programa que declare una especialización explícita o parcial de
|
(since C++23) |
El valor predeterminado, no especializado,
std::allocator_traits
contiene los siguientes miembros:
Contenidos |
Tipos de miembros
| Tipo | Definición |
allocator_type
|
Alloc
|
value_type
|
Alloc::value_type
|
pointer
|
Alloc::pointer
si está presente, de lo contrario
value_type*
|
const_pointer
|
Alloc::const_pointer
si está presente, de lo contrario
std::
pointer_traits
<
pointer
>
::
rebind
<
const
value_type
>
|
void_pointer
|
Alloc::void_pointer
si está presente, de lo contrario
std::
pointer_traits
<
pointer
>
::
rebind
<
void
>
|
const_void_pointer
|
Alloc::const_void_pointer
si está presente, de lo contrario
std::
pointer_traits
<
pointer
>
::
rebind
<
const
void
>
|
difference_type
|
Alloc::difference_type
si está presente, de lo contrario
std::
pointer_traits
<
pointer
>
::
difference_type
|
size_type
|
Alloc::size_type
si está presente, de lo contrario
std::
make_unsigned
<
difference_type
>
::
type
|
propagate_on_container_copy_assignment
|
Alloc::propagate_on_container_copy_assignment
si está presente, de lo contrario
std::false_type
|
propagate_on_container_move_assignment
|
Alloc::propagate_on_container_move_assignment
si está presente, de lo contrario
std::false_type
|
propagate_on_container_swap
|
Alloc::propagate_on_container_swap
si está presente, de lo contrario
std::false_type
|
is_always_equal
|
Alloc::is_always_equal
si está presente, de lo contrario
std::
is_empty
<
Alloc
>
::
type
|
Plantillas de alias de miembro
| Tipo | Definición |
rebind_alloc<T>
|
Alloc::rebind<T>::other
si está presente, de lo contrario
SomeAllocator<T, Args>
si este
Alloc
es de la forma
SomeAllocator
<
U, Args
>
, donde
Args
son cero o más
argumentos de tipo
|
rebind_traits<T>
|
std :: allocator_traits < rebind_alloc < T >> |
Funciones miembro
|
[static]
|
asigna almacenamiento no inicializado usando el asignador
(función miembro estática pública) |
|
[static]
(C++23)
|
asigna almacenamiento al menos tan grande como el tamaño solicitado mediante un asignador
(función miembro estática pública) |
|
[static]
|
desasigna almacenamiento usando el asignador
(función miembro estática pública) |
|
[static]
|
construye un objeto en el almacenamiento asignado
(plantilla de función) |
|
[static]
|
destruye un objeto almacenado en el almacenamiento asignado
(plantilla de función) |
|
[static]
|
devuelve el tamaño máximo de objeto soportado por el asignador
(función miembro estática pública) |
|
obtiene el asignador a usar después de copiar un contenedor estándar
(función miembro estática pública) |
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 2108 | C++11 | no existía forma de mostrar que un asignador es sin estado |
is_always_equal
proporcionado
|
Véase también
|
(C++11)
|
contenedor que utiliza asignador; uso de características asociadas (ej.
propagate_on_container_swap
)
(requisito con nombre) |
|
el asignador por defecto
(plantilla de clase) |
|
|
(C++11)
|
implementa asignador multinivel para contenedores multinivel
(plantilla de clase) |
|
(C++11)
|
proporciona información sobre tipos similares a punteros
(plantilla de clase) |