Namensräume
Varianten
Aktionen

std::auto_ptr<T>::operator=

Von cppreference.com
< cpp‎ | memory‎ | auto ptr
 
 
Speicherverwaltungsbibliothek
(nur Exposition*)
Algorithmen für uninitialisierten Speicher
(C++17)
(C++17)
(C++17)
Beschränkte uninitialisierte
Speicher-Algorithmen
C-Bibliothek

Allocatoren
Speicherressourcen
Unterstützung für Garbage Collection
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
Uninitialisierter Speicher
Explizites Lebenszeitmanagement
 
 
auto_ptr& operator=( auto_ptr& r ) throw();
(1) (in C++11 veraltet)
(removed in C++17)
template< class Y >
auto_ptr& operator=( auto_ptr<Y>& r ) throw();
(2) (in C++11 veraltet)
(removed in C++17)
auto_ptr& operator=( auto_ptr_ref<T> m ) throw();
(3) (in C++11 veraltet)
(removed in C++17)

Ersetzt das verwaltete Objekt durch das Objekt, 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 in und aus diesem Typ konvertierbar. Die Implementierung darf die Vorlage unter einem anderen Namen bereitstellen oder eine äquivalente Funktionalität auf andere Weise implementieren.

Inhalt

[bearbeiten] Parameter

r - ein weiterer auto_ptr, von dem das Eigentum des Objekts übertragen werden soll
m - ein Objekt eines implementierungsdefinierten Typs, das eine Referenz auf auto_ptr hält

[bearbeiten] Rückgabewert

*this.

[bearbeiten] Hinweise

Der Konstruktor und der Zuweisungsoperator für Kopien von auto_ptr_ref werden bereitgestellt, um das Kopieren von und die Zuweisung an std::auto_ptr von namenlosen Temporärwerten zu ermöglichen. Da sein Kopierkonstruktor und sein Zuweisungsoperator für Kopien das Argument als nicht-const-Referenz entgegennehmen, können sie rvalue-Argumente nicht direkt binden. Eine benutzerdefinierte Konvertierung kann jedoch ausgeführt werden (die den ursprünglichen auto_ptr freigibt), gefolgt von einem Aufruf des Konstruktors oder des Zuweisungsoperators für Kopien, der auto_ptr_ref per Wert entgegennimmt. Dies ist eine frühe Implementierung der Move-Semantik.

[bearbeiten] 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 von auto_ptr_ref zuweisbar Überladung (3) hinzugefügt