Namespaces
Variants

std::auto_ptr<T>:: auto_ptr

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)
explicit auto_ptr ( X * p = 0 ) throw ( ) ;
(1) (veraltet in C++11)
(entfernt in C++17)
auto_ptr ( auto_ptr & r ) throw ( ) ;
(2) (veraltet in C++11)
(entfernt in C++17)
template < class Y >
auto_ptr ( auto_ptr < Y > & r ) throw ( ) ;
(3) (veraltet in C++11)
(entfernt in C++17)
auto_ptr ( auto_ptr_ref < X > m ) throw ( ) ;
(4) (veraltet in C++11)
(entfernt in C++17)

Konstruiert den auto_ptr aus einem Zeiger, der auf das zu verwaltende Objekt verweist.

1) Konstruiert den auto_ptr mit dem Zeiger p .
2) Konstruiert den auto_ptr mit dem Zeiger, der in r gehalten wird. r. release ( ) wird aufgerufen, um den Besitz des Objekts zu übernehmen.
3) Gleich wie (2). Y * muss implizit konvertierbar zu T * sein.
4) Konstruiert den auto_ptr mit dem Zeiger, der in der auto_ptr -Instanz gehalten wird, auf die durch m verwiesen wird. p. release ( ) wird für den auto_ptr p aufgerufen, den m hält, um den Besitz des Objekts zu übernehmen.
auto_ptr_ref ist ein implementierungsdefinierter Typ, der eine Referenz auf auto_ptr hält. std::auto_ptr ist implizit konvertierbar zu und zuweisbar von diesem Typ. Der Implementierung ist es erlaubt, dem Template einen anderen Namen zu geben oder äquivalente Funktionalität auf andere Weise zu implementieren.

Parameter

p - ein Zeiger auf ein zu verwaltendes Objekt
r - ein weiterer auto_ptr , von dem der Besitz des Objekts übernommen wird
m - ein implementierungsdefinierter Typ, der eine Referenz auf auto_ptr enthält

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 der Move-Semantik .