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) (in C++11 veraltet)
(in C++17 entfernt)
template < class Y, class Deleter >
shared_ptr & operator = ( std:: unique_ptr < Y, Deleter > && r ) ;
(6)

Ersetzt das verwaltete Objekt durch das von r verwaltete Objekt.

Wenn * this bereits ein Objekt besitzt und es der letzte shared_ptr ist, der es besitzt, und r nicht dasselbe wie * this ist, wird das Objekt durch den enthaltenen Deleter zerstört.

1,2) Übernimmt die gemeinsame Eigentümerschaft des durch r verwalteten Objekts. Falls r kein Objekt verwaltet, verwaltet auch * this kein Objekt. Entspricht shared_ptr < T > ( r ) . swap ( * this ) .
3,4) Führt eine Move-Zuweisung eines shared_ptr von r durch. Nach der Zuweisung enthält * this eine Kopie des vorherigen Zustands von r , und r ist leer. Entspricht shared_ptr < T > ( std :: move ( r ) ) . swap ( * this ) .
5) Überträgt die Eigentümerschaft des von r verwalteten Objekts auf * this . Wenn r kein Objekt verwaltet, verwaltet * this ebenfalls kein Objekt. Nach der Zuweisung enthält * this den zuvor von r gehaltenen Zeiger, und use_count ( ) == 1 ; außerdem ist r leer. Entspricht shared_ptr < T > ( r ) . swap ( * this ) .
6) Überträgt die Eigentümerschaft des durch r verwalteten Objekts auf * this . Der mit r assoziierte Deleter wird für die zukünftige Löschung des verwalteten Objekts gespeichert. r verwaltet nach dem Aufruf kein Objekt mehr. Entspricht shared_ptr < T > ( std :: move ( r ) ) . swap ( * this ) .

Inhaltsverzeichnis

Parameter

r - ein weiterer intelligenter Zeiger, um die Eigentümerschaft zu teilen oder zu übernehmen

Rückgabewert

* this

Hinweise

Die Implementierung kann die Anforderungen erfüllen, ohne ein temporäres shared_ptr Objekt zu erstellen.

Exceptions

5,6) Kann implementierungsdefinierte Ausnahmen werfen.

Beispiel

Siehe auch

ersetzt das verwaltete Objekt
(öffentliche Elementfunktion)