Namespaces
Variants

std::shared_ptr<T>:: operator=

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
shared_ptr & operator = ( const shared_ptr & r ) noexcept ;
(1)
template < class Y >
shared_ptr & operator = ( const shared_ptr < Y > & r ) noexcept ;
(2)
shared_ptr & operator = ( shared_ptr && r ) noexcept ;
(3)
template < class Y >
shared_ptr & operator = ( shared_ptr < Y > && r ) noexcept ;
(4)
template < class Y >
shared_ptr & operator = ( std:: auto_ptr < Y > && r ) ;
(5) (obsolète en C++11)
(supprimé en C++17)
template < class Y, class Deleter >
shared_ptr & operator = ( std:: unique_ptr < Y, Deleter > && r ) ;
(6)

Remplace l'objet géré par celui géré par r .

Si * this possède déjà un objet et qu'il est le dernier shared_ptr le possédant, et que r n'est pas identique à * this , l'objet est détruit via le suppresseur possédé.

1,2) Partage la propriété de l'objet géré par r . Si r ne gère aucun objet, * this ne gère également aucun objet. Équivalent à shared_ptr < T > ( r ) . swap ( * this ) .
3,4) Effectue une affectation par déplacement d'un shared_ptr à partir de r . Après l'affectation, * this contient une copie de l'état précédent de r , et r est vide. Équivalent à shared_ptr < T > ( std :: move ( r ) ) . swap ( * this ) .
5) Transfère la propriété de l'objet géré par r à * this . Si r ne gère aucun objet, * this ne gère également aucun objet. Après l'affectation, * this contient le pointeur précédemment détenu par r , et use_count ( ) == 1 ; également r est vide. Équivalent à shared_ptr < T > ( r ) . swap ( * this ) .
6) Transfère la propriété de l'objet géré par r à * this . Le suppresseur associé à r est conservé pour la suppression future de l'objet géré. r ne gère aucun objet après l'appel. Équivalent à shared_ptr < T > ( std :: move ( r ) ) . swap ( * this ) .

Table des matières

Paramètres

r - un autre pointeur intelligent pour partager la propriété avec ou acquérir la propriété depuis

Valeur de retour

* this

Notes

L'implémentation peut satisfaire aux exigences sans créer un objet temporaire shared_ptr .

Exceptions

5,6) Peut lever des exceptions définies par l'implémentation.

Exemple

Voir aussi

remplace l'objet géré
(fonction membre publique)