std::shared_ptr<T>::operator=
De cppreference.com
<tbody>
</tbody>
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).Parámetros
| r | - | Otro puntero inteligente del que compartir o adquirir la posesión. |
Valor de retorno
*this
Notas
La implementación puede cumplir con los requisitos sin crear un objeto shared_ptr temporal.
Excepciones
3-4) Puede lanzar excepciones definidas por la implementación.
Ejemplo
| Esta sección está incompleta Razón: sin ejemplo |
Véase también
| Reemplaza el objeto gestionado. (función miembro pública) |