std::auto_ptr<T>::operator auto_ptr<Y>
Von cppreference.com
| template< class Y > operator auto_ptr_ref<Y>() throw(); |
(1) | (in C++11 veraltet) (removed in C++17) |
| template< class Y > operator auto_ptr<Y>() throw(); |
(2) | (in C++11 veraltet) (removed in C++17) |
Konvertiert *this in einen 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 von diesem Template konvertierbar und aus diesem Template zuweisbar. Die Implementierung darf das Template mit einem anderen Namen versehen oder äquivalente Funktionalität auf andere Weise implementieren.
[bearbeiten] Parameter
(keine)
[bearbeiten] Rückgabewert
1) Ein implementierungsdefinierter Typ, der eine Referenz auf *this hält.
[bearbeiten] Anmerkungen
Der Konstruktor und der Kopierzuweisungsoperator von auto_ptr_ref sind vorhanden, um das Kopierkonstruieren und Zuweisen von std::auto_ptr aus namenlosen Temporärwerten zu ermöglichen. Da sein Kopierkonstruktor und sein Kopierzuweisungsoperator das Argument als nicht-const Referenz nehmen, können sie Rvalue-Argumente nicht direkt binden. Eine benutzerdefinierte Konvertierung (1) oder (2) kann jedoch ausgeführt werden (wodurch der ursprüngliche auto_ptr freigegeben wird), gefolgt von einem Aufruf des Konstruktors oder Kopierzuweisungsoperators, der auto_ptr_ref per Wert annimmt. Dies ist eine frühe Implementierung der Move-Semantik.