std::polymorphic<T, Allocator>:: operator=
|
constexpr
polymorphic
&
operator
=
(
const
polymorphic
&
other
)
;
|
(1) | (depuis C++26) |
|
constexpr
polymorphic
&
operator
=
(
polymorphic
&&
other
)
noexcept ( /* voir ci-dessous */ ) ; |
(2) | (depuis C++26) |
Remplace le contenu de * this par le contenu de other .
Soit
traits
l'expression
std::
allocator_traits
<
Allocator
>
:
-
Si
other
est sans valeur, passe à l'étape suivante. Sinon, construit un nouvel objet possédé dans
*
this
en utilisant
traits
::
construct
avec
*
other
comme argument, en utilisant l'allocateur
update_alloc
?
other.
alloc:alloc. - L'objet précédemment possédé dans * this (s'il existe) est détruit en utilisant traits :: destroy puis la mémoire est désallouée.
alloc
est remplacé par une copie de
other.
alloc
.
-
Si
alloc== other.allocest true , échange les objets possédés dans * this et other ; l'objet possédé dans other (s'il existe) est ensuite détruit en utilisant traits :: destroy puis la mémoire est désallouée. - Sinon :
-
-
Si
other
est sans valeur, passe à l'étape suivante. Sinon, construit un nouvel objet possédé dans
*
this
en utilisant
traits
::
construct
avec
std
::
move
(
*
other
)
comme argument, en utilisant l'allocateur
update_alloc
?
other.
alloc:alloc. - L'objet précédemment possédé dans * this (s'il existe) est détruit en utilisant traits :: destroy puis la mémoire est désallouée.
-
Si
other
est sans valeur, passe à l'étape suivante. Sinon, construit un nouvel objet possédé dans
*
this
en utilisant
traits
::
construct
avec
std
::
move
(
*
other
)
comme argument, en utilisant l'allocateur
update_alloc
?
other.
alloc
est remplacé par une copie de
other.
alloc
.
- std:: allocator_traits < Allocator > :: is_always_equal :: value est false .
-
Test un type incomplet.
Table des matières |
Paramètres
| autre | - |
un autre
polymorphic
objet dont la valeur possédée (si elle existe) est utilisée pour l'affectation
|
Valeur de retour
* this
Exceptions
propagate_on_container_move_assignment
::
value
Exemple
|
Cette section est incomplète
Raison : aucun exemple |