std::auto_ptr<T>:: operator=
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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 .
Y*
doit être implicitement convertible en
T*
.
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) |