Espacios de nombres
Variantes
Acciones

std::shared_ptr<T>::operator=

De cppreference.com
< cpp‎ | memory‎ | shared ptr
 
 
Biblioteca de servicios
 
Gestión de memoria dinámica
Punteros inteligentes
(C++11)
(C++11)
(C++11)
(hasta C++17)
(C++11)
(C++23)
Asignadores de memoria
Recursos de memoria
Almacenamiento no inicializado
Algoritmos de memoria no inicializada
Algoritmos restringidos de memoria no inicializada
Apoyo para recolección de basura
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
Misceláneos
(C++20)
(C++11)
(C++11)
 
 
shared_ptr& operator=(const shared_ptr& r )noexcept;
(1)
template<class Y >
shared_ptr& operator=(const shared_ptr<Y>& r )noexcept;
(1)
shared_ptr& operator=( shared_ptr&& r )noexcept;
(2)
template<class Y >
shared_ptr& operator=( shared_ptr<Y>&& r )noexcept;
(2)
template<class Y >
shared_ptr& operator=(std::auto_ptr<Y>&& r );
(3) (en desuso en C++11)
(eliminado en C++17)
template<class Y, class Deleter >
shared_ptr& operator=(std::unique_ptr<Y,Deleter>&& r );
(4)

Reemplaza el objeto gestionado con el gestionado por r.

Si *this ya posee un objeto y es el último shared_ptr que lo posee, y r no es lo mismo que *this, el objeto se destruye a través del eliminador almacenado.

1) Comparte la posesión del objeto gestionado por r. Si r no gestiona ningún objeto, *this tampoco gestiona ningún objeto. Equivalente a shared_ptr<T>(r).swap(*this).
2) Asigna por movimiento un shared_ptr a partir de r. Después de la asignación, *this contiene una copia del estado anterior de r y r está vacío. Equivalente a shared_ptr<T>(std::move(r)).swap(*this).
3) Transfiere la posesión del objeto gestionado por r a *this. Si r no gestiona ningún objeto, *this tampoco gestiona ningún objeto. Después de la asignación, *this contiene el puntero anteriormente mantenido por r, y use_count()==1; r también está vacío. Equivalente a shared_ptr<T>(r).swap(*this).
4) Transfiere la posesión del objeto gestionado por r a *this. El eliminador asociado con r se almacena para la futura eliminación del objeto gestionado. r no gestiona ningún objeto después de la llamada. Equivalente a shared_ptr<T>(std::move(r)).swap(*this).

Contenido

[editar]Parámetros

r - Otro puntero inteligente del que compartir o adquirir la posesión.

[editar]Valor de retorno

*this

[editar]Notas

La implementación puede cumplir con los requisitos sin crear un objeto shared_ptr temporal.

[editar]Excepciones

3-4) Puede lanzar excepciones definidas por la implementación.

[editar]Ejemplo

[editar]Véase también

Reemplaza el objeto gestionado.
(función miembro pública)[editar]
close