std:: indirect
|
Definido en el encabezado
<memory>
|
||
|
template
<
class
T,
class
Allocator
=
std::
allocator
<
T
>
>
class indirect ; |
(1) | (desde C++26) |
|
namespace
pmr
{
template
<
class
T
>
|
(2) | (desde C++26) |
std::indirect
es un contenedor que contiene un objeto asignado dinámicamente con semántica de valor.
Un objeto
std::indirect
gestiona el
tiempo de vida
de un objeto poseído. Un objeto
std::indirect
solo puede carecer de objeto poseído después de haber sido movido, en cuyo caso se considera
sin valor
.
Cada objeto de tipo
std::indirect<T, Allocator>
utiliza un objeto de tipo
Allocator
para asignar y liberar almacenamiento para el objeto poseído según sea necesario.
Si un programa declara una especialización explícita o parcial de
std::indirect
, el comportamiento es indefinido.
Contenidos |
Parámetros de plantilla
| T | - | el tipo del objeto poseído |
| Allocator | - | el tipo del asignador asociado |
| Requisitos de tipo | ||
-
T
puede ser un
tipo incompleto
.
|
||
-
T
es uno de los siguientes tipos, el programa está mal formado:
|
||
-
Allocator
no satisface los requisitos de
Allocator
, el programa está mal formado.
|
||
-
T
, el programa está mal formado.
|
||
Tipos anidados
| Tipo | Definición |
value_type
|
T
|
allocator_type
|
Allocator
|
pointer
|
typename std:: allocator_traits < Allocator > :: pointer |
const_pointer
|
typename std:: allocator_traits < Allocator > :: const_pointer |
Miembros de datos
| Miembro | Descripción |
pointer
p
|
un puntero al valor poseído
( objeto miembro solo para exposición* ) |
Allocator
alloc
|
el asignador asociado
( objeto miembro solo para exposición* ) |
Funciones miembro
construye el objeto
indirect
(función miembro pública) |
|
|
destruye el valor poseído, si existe
(función miembro pública) |
|
|
asigna contenidos
(función miembro pública) |
|
Observadores |
|
|
accede al valor poseído
(función miembro pública) |
|
verifica si el
indirect
carece de valor
(función miembro pública) |
|
|
retorna el asignador asociado
(función miembro pública) |
|
Modificadores |
|
|
intercambia los contenidos
(función miembro pública) |
|
Funciones no miembro
|
(C++26)
(C++26)
|
compara objetos
indirect
(plantilla de función) |
|
(C++26)
|
especializa el algoritmo
std::swap
(plantilla de función) |
Clases auxiliares
|
(C++26)
|
Soporte de hash para
std::indirect
(especialización de plantilla de clase) |
Guías de deducción
Notas
| Macro de prueba de características | Valor | Std | Característica |
|---|---|---|---|
__cpp_lib_indirect
|
202502L
|
(C++26) |
std::indirect
|
Ejemplo
|
Esta sección está incompleta
Motivo: sin ejemplo |
Véase también
|
(C++26)
|
un contenedor polimórfico que contiene un objeto asignado dinámicamente con semántica de valor
(plantilla de clase) |
|
(C++11)
|
puntero inteligente con semántica de propiedad única de objetos
(plantilla de clase) |