Namespaces
Variants

std::auto_ptr<T>:: operator auto_ptr<Y>

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)
template < class Y >
operator auto_ptr_ref < Y > ( ) throw ( ) ;
(1) (in C++11 veraltet)
(in C++17 entfernt)
template < class Y >
operator auto_ptr < Y > ( ) throw ( ) ;
(2) (in C++11 veraltet)
(in C++17 entfernt)

Konvertiert * this zu einem auto_ptr für einen anderen Typ Y .

1) Gibt einen implementierungsdefinierten Typ zurück, der eine Referenz auf * this hält. std::auto_ptr ist konvertierbar und zuweisbar von dieser Template. Der Implementierung ist es erlaubt, dem Template einen anderen Namen zu geben oder äquivalente Funktionalität auf andere Weise zu implementieren.
2) Konstruiert einen neuen auto_ptr mit einem Zeiger, der durch Aufruf von release() erhalten wird.

Parameter

(keine)

Rückgabewert

1) Ein implementierungsdefinierter Typ, der eine Referenz auf * this hält.
2) Ein auto_ptr mit einem Zeiger, der durch Aufruf von release() erhalten wurde.

Hinweise

Der Konstruktor und der Kopierzuweisungsoperator von auto_ptr_ref werden bereitgestellt, 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-Konst-Referenz nehmen, können sie Rvalue-Argumente nicht direkt binden. Allerdings kann eine benutzerdefinierte Konvertierung (1) oder (2) 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 .