std::pmr::polymorphic_allocator
| Definido en el archivo de encabezado <memory_resource>
|
||
template< class T > class polymorphic_allocator; |
(desde C++17) (hasta C++20) |
|
template< class T = std::byte > class polymorphic_allocator; |
(desde C++20) | |
La plantilla de clase std::pmr::polymorphic_allocator es un asignador de memoria, Allocator, que exhibe un comportamiento de asignación diferente dependiendo del recurso de memoria, std::pmr::memory_resource, del que esta construido. Dado que memory_resource usa polimorfismo en tiempo de ejecución para gestionar asignaciones, diferentes instancias del contenedor con polymorphic_allocator como su tipo de asignador estático son interoperables, pero pueden comportarse como si tuvieran diferentes tipos de asignador.
Todas las especializaciones de polymorphic_allocator cumplen con los requerimientos de completitud del asignador.
Tipos miembro
| Tipo miembro | Definición |
value_type
|
T
|
Funciones miembro
Construye un asignador de memoria polimórfico polymorphic_allocator. (función miembro pública) | |
(destructor) (implícitamente declarado) |
Destructor implícitamente declarado. (función miembro pública) |
operator= [eliminada] |
El operador de asignación de copia está eliminado. (función miembro pública) |
Funciones miembro públicas | |
| Asigna memoria. (función miembro pública) | |
| Libera memoria. (función miembro pública) | |
| Construye un objeto en el almacenamiento asignado. (función miembro pública) | |
(en desuso en C++20) |
Destruye un objeto en el almacenamiento asignado. (función miembro pública) |
(C++20) |
Asigna memoria sin formato alineada del recurso subyacente. (función miembro pública) |
(C++20) |
Libera memoria sin formato obtenida mediante allocate_bytes. (función miembro pública) |
(C++20) |
Asigna memoria sin formato adecuada para un objeto o un array. (función miembro pública) |
(C++20) |
Libera memoria sin formato obtenida mediante allocate_object. (función miembro pública) |
(C++20) |
Asigna memoria y construye un objeto. (función miembro pública) |
(C++20) |
Destruye y desasigna un objeto. (función miembro pública) |
Crea un asignador polimórfico polymorphic_allocator para uso por el constructor de copia de un contenedor. (función miembro pública) | |
| Devuelve un puntero al recurso de memoria subyacente. (función miembro pública) | |
Funciones no miembro
(eliminado en C++20) |
Compara dos asignadores polimórficos polymorphic_allocator. (función) |
Notas
Un asignador de memoria polimórfico, polymorphic_allocator, no se propaga en la asignación de copia, asignación de movimiento o intercambio de un contenedor. Como resultado, la asignación por movimiento de un contenedor que usa un polymorphic_allocator puede lanzar, e intercambiar dos contenedores que usan asignadores de memoria polimórficos cuyos asignadores no se comparan iguales resulta en un comportamiento no definido.
Véase también
(C++17) |
Una interfaz abstracta para clases que encapsulan recursos de memoria. (clase) |