Namespaces
Variants

std::experimental:: observer_ptr

From cppreference.net
Definido en el encabezado <experimental/memory>
template < class W >
class observer_ptr ;
(library fundamentals TS v2)

std::experimental::observer_ptr es un puntero no propietario, o observador . El observador almacena un puntero a un segundo objeto, conocido como el objeto observado . Un observer_ptr también puede no tener objeto observado.

Un observador no es responsable de ninguna manera por el objeto observado; no existe una relación inherente entre un observador y el objeto que observa.

Está diseñado como un reemplazo casi directo para los tipos de puntero sin procesar, con la ventaja de que, como tipo de vocabulario, indica su uso previsto sin necesidad de un análisis detallado por parte de los lectores del código.

Las especializaciones de observer_ptr satisfacen los requisitos de CopyConstructible y CopyAssignable .

Requisitos de tipo
-
W no debe ser un tipo de referencia, pero puede ser un tipo incompleto.

Contenidos

Tipos de miembros

Tipo de miembro Definición
element_type W , el tipo del objeto observado por este observer_ptr

Funciones miembro

construye un nuevo observer_ptr
(función miembro pública)
(destructor)
(implicitly declared)
destruye un observer_ptr
(función miembro pública)
operator=
(implicitly declared)
operadores de asignación de copia y movimiento declarados implícitamente que asignan el puntero almacenado
(función miembro pública)
Modificadores
devuelve un puntero al objeto observado y deja de observar el objeto
(función miembro pública)
reemplaza el objeto observado
(función miembro pública)
intercambia los objetos observados
(función miembro pública)
Observadores
devuelve un puntero al objeto observado
(función miembro pública)
verifica si hay un objeto observado asociado
(función miembro pública)
desreferencia el puntero al objeto observado
(función miembro pública)
Conversiones
función de conversión explícita al puntero almacenado
(función miembro pública)

Funciones no miembro

crea un observer_ptr que observa un objeto
(plantilla de función)
compara con otro observer_ptr o con nullptr
(plantilla de función)
especializa el algoritmo swap
(plantilla de función)

Clases auxiliares

soporte de hash para observer_ptr
(especialización de plantilla de clase)

Ejemplo