Namespaces
Variants

std::experimental:: shared_ptr

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

std::experimental::shared_ptr es una versión modificada de std::shared_ptr que añade soporte para arrays.

Contenidos

Tipos de miembros

Tipo de miembro Definición
element_type std:: remove_extent_t < T >

Funciones miembro

construye un nuevo shared_ptr
(función miembro pública)
Observadores
devuelve el puntero almacenado
(función miembro pública)
desreferencia el puntero almacenado
(función miembro pública)
proporciona acceso indexado al array
(función miembro pública)

Funciones no miembro

aplica static_cast , dynamic_cast , const_cast , o reinterpret_cast al puntero almacenado
(plantilla de función)

Clases auxiliares

soporte de hash para std::experimental::shared_ptr
(especialización de plantilla de clase)

Miembros y no miembros idénticos a std:: shared_ptr

Funciones miembro

Las siguientes funciones miembro trabajan con std::experimental::shared_ptr en lugar de std::shared_ptr y std::experimental::weak_ptr en lugar de std::weak_ptr . El comportamiento es idéntico en todo lo demás.

destruye el objeto poseído si no hay más shared_ptr s que enlacen a él
(función miembro pública de std::shared_ptr<T> )
asigna el shared_ptr
(función miembro pública de std::shared_ptr<T> )
Modificadores
reemplaza el objeto gestionado
(función miembro pública de std::shared_ptr<T> )
intercambia los objetos gestionados
(función miembro pública de std::shared_ptr<T> )
Observadores
devuelve el número de objetos shared_ptr que hacen referencia al mismo objeto gestionado
(función miembro pública de std::shared_ptr<T> )
(hasta C++20)
comprueba si el objeto gestionado está gestionado únicamente por el objeto shared_ptr actual
(función miembro pública de std::shared_ptr<T> )
comprueba si el puntero almacenado no es nulo
(función miembro pública de std::shared_ptr<T> )
proporciona un ordenamiento basado en propietario de punteros compartidos
(función miembro pública de std::shared_ptr<T> )

Funciones no miembro

Estas funciones no miembro se declaran en el std::experimental namespace, y funcionan con std::experimental::shared_ptr en lugar de std::shared_ptr , pero por lo demás se comportan de manera idéntica a la función correspondiente de C++14.

crea un puntero compartido que gestiona un nuevo objeto
(plantilla de función)
crea un puntero compartido que gestiona un nuevo objeto asignado mediante un asignador
(plantilla de función)
devuelve el eliminador del tipo especificado, si está poseído
(plantilla de función)
(eliminado en C++20) (eliminado en C++20) (eliminado en C++20) (eliminado en C++20) (eliminado en C++20) (C++20)
compara con otro shared_ptr o con nullptr
(plantilla de función)
envía el valor del puntero almacenado a un flujo de salida
(plantilla de función)
especializa el algoritmo std::swap
(plantilla de función)
especializa operaciones atómicas para std::shared_ptr
(plantilla de función)

Plantillas de clase auxiliares

Estas plantillas de clase se declaran en el espacio de nombres std::experimental , y funcionan con std::experimental::shared_ptr y std::experimental::weak_ptr en lugar de std::shared_ptr y std::weak_ptr , pero por lo demás se comportan de manera idéntica a la plantilla de clase correspondiente de C++14.

(C++11)
proporciona ordenación basada en propietario de tipos mixtos para punteros shared y weak
(plantilla de clase)
permite que un objeto cree un shared_ptr que haga referencia a sí mismo
(plantilla de clase)

Ejemplo