Namespaces
Variants

std::auto_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)
auto_ptr & operator = ( auto_ptr & r ) throw ( ) ;
(1) (in C++11 veraltet)
(in C++17 entfernt)
template < class Y >
auto_ptr & operator = ( auto_ptr < Y > & r ) throw ( ) ;
(2) (in C++11 veraltet)
(in C++17 entfernt)
auto_ptr & operator = ( auto_ptr_ref < T > m ) throw ( ) ;
(3) (in C++11 veraltet)
(in C++17 entfernt)

Ersetzt das verwaltete Objekt durch dasjenige, das von r oder m verwaltet wird.

1) Ruft effektiv reset ( r. release ( ) ) auf.
2) Ruft effektiv reset ( r. release ( ) ) auf. Y* muss implizit in T* konvertierbar sein.
3) Ruft effektiv reset ( m. release ( ) ) auf. auto_ptr_ref ist ein implementierungsdefinierter Typ, der eine Referenz auf auto_ptr hält. std::auto_ptr ist implizit konvertierbar zu und von diesem Typ. Der Implementierung ist es erlaubt, dem Template einen anderen Namen zu geben oder äquivalente Funktionalität auf andere Weise zu implementieren.

Inhaltsverzeichnis

Parameter

r - ein weiterer auto_ptr , um den Besitz des Objekts von diesem zu übertragen
m - ein Objekt eines implementierungsdefinierten Typs, das eine Referenz auf auto_ptr hält

Rückgabewert

* this .

Hinweise

Der Konstruktor und der Kopierzuweisungsoperator von auto_ptr_ref sind vorhanden, um das Kopierkonstruieren und Zuweisen von std::auto_ptr aus namenlosen Temporären zu ermöglichen. Da ihr Kopierkonstruktor und Kopierzuweisungsoperator das Argument als nicht-konstante Referenz nehmen, können sie Rvalue-Argumente nicht direkt binden. Allerdings kann eine benutzerdefinierte Konvertierung ausgeführt werden (welche das ursprüngliche auto_ptr freigibt), gefolgt von einem Aufruf des Konstruktors oder Kopierzuweisungsoperators, die auto_ptr_ref als Wert nehmen. Dies ist eine frühe Implementierung von Move-Semantik .

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
LWG 127 C++98 auto_ptr war nicht zuweisbar von auto_ptr_ref Überladung (3) hinzugefügt