Namespaces
Variants

std::auto_ptr<T>:: operator=

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)
auto_ptr & operator = ( auto_ptr & r ) throw ( ) ;
(1) (obsolète en C++11)
(supprimé en C++17)
template < class Y >
auto_ptr & operator = ( auto_ptr < Y > & r ) throw ( ) ;
(2) (obsolète en C++11)
(supprimé en C++17)
auto_ptr & operator = ( auto_ptr_ref < T > m ) throw ( ) ;
(3) (obsolète en C++11)
(supprimé en C++17)

Remplace l'objet géré par celui géré par r ou m .

1) Appelle effectivement reset ( r. release ( ) ) .
2) Appelle effectivement reset ( r. release ( ) ) . Y* doit être implicitement convertible en T* .
3) Appelle effectivement reset ( m. release ( ) ) . 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 vers et 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.

Table des matières

Paramètres

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

Valeur de retour

* this .

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 .

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Appliqué à Comportement publié Comportement corrigé
LWG 127 C++98 auto_ptr n'était pas assignable à partir de auto_ptr_ref surcharge ajoutée (3)