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) (déprécié en C++11)
(supprimé en C++17)
auto_ptr ( auto_ptr & r ) throw ( ) ;
(2) (déprécié en C++11)
(supprimé en C++17)
template < class Y >
auto_ptr ( auto_ptr < Y > & r ) throw ( ) ;
(3) (déprécié en C++11)
(supprimé en C++17)
auto_ptr ( auto_ptr_ref < X > m ) throw ( ) ;
(4) (déprécié en C++11)
(supprimé en C++17)

Construit l' auto_ptr à partir d'un pointeur qui référence l'objet à gérer.

1) Construit l' auto_ptr avec le pointeur p .
2) Construit l' auto_ptr avec le pointeur détenu dans r . r. release ( ) est appelé pour acquérir la propriété de l'objet.
3) Identique à (2). Y * doit être implicitement convertible en T * .
4) Construit l' auto_ptr avec le pointeur détenu dans l'instance de auto_ptr référencée par m . p. release ( ) est appelé pour l' auto_ptr p que m détient afin d'acquérir la propriété de l'objet.
auto_ptr_ref est un type défini par l'implémentation qui contient une référence à auto_ptr . std::auto_ptr est implicitement convertible en et assignable depuis ce type. L'implémentation est autorisée à fournir au template un nom différent ou à implémenter une fonctionnalité équivalente d'autres manières.

Paramètres

p - un pointeur vers un objet à gérer
r - un autre auto_ptr pour transférer la propriété de l'objet depuis
m - un type défini par l'implémentation qui contient une référence à auto_ptr

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-constante, ils ne peuvent pas lier directement des arguments rvalue. Cependant, une conversion définie par l'utilisateur 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 .