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) (obsolète en C++11)
(supprimé en C++17)
template < class Y >
operator auto_ptr < Y > ( ) throw ( ) ;
(2) (obsolète en C++11)
(supprimé en C++17)

Convertit * this en un auto_ptr pour un type différent Y .

1) Retourne un type défini par l'implémentation qui contient une référence à * this . std::auto_ptr est convertible et assignable à partir de ce modèle. L'implémentation est autorisée à fournir au modèle un nom différent ou à implémenter une fonctionnalité équivalente d'autres manières.
2) Construit un nouveau auto_ptr avec un pointeur obtenu en appelant release() .

Paramètres

(aucun)

Valeur de retour

1) Un type défini par l'implémentation qui contient une référence à * this .
2) Un auto_ptr avec un pointeur obtenu en appelant release() .

Notes

Le constructeur et l'opérateur d'affectation par copie depuis auto_ptr_ref sont fournis pour permettre la construction par copie et l'affectation de std::auto_ptr à partir de temporaires sans nom. Étant donné que leur constructeur de copie et leur opérateur d'affectation par copie prennent l'argument par référence non-const, ils ne peuvent pas lier directement des arguments rvalue. Cependant, une conversion définie par l'utilisateur (1) ou (2) peut être exécutée (ce qui libère l'original auto_ptr ), suivie d'un appel au constructeur ou à l'opérateur d'affectation par copie qui prennent auto_ptr_ref par valeur. Ceci est une implémentation précoce de la sémantique de déplacement .