std::indirect<T, Allocator>:: operator=
|
constexpr
indirect
&
operator
=
(
const
indirect
&
other
)
;
|
(1) | (desde C++26) |
|
constexpr
indirect
&
operator
=
(
indirect
&&
other
)
noexcept
(
/* ver más abajo */
)
;
|
(2) | (desde C++26) |
|
template
<
class
U
=
T
>
constexpr indirect & operator = ( U && value ) ; |
(3) | (desde C++26) |
Reemplaza el contenido de * this con value o el contenido de other .
Sea
traits
como
std::
allocator_traits
<
Allocator
>
:
- Si other no tiene valor, * this se convierte en sin valor y el objeto poseído por * this (si existe) se destruye usando traits :: destroy y luego se desasigna el almacenamiento.
-
De lo contrario, si
alloc== other.alloces true y * this no está sin valor, equivalente a ** this = * other . - De lo contrario:
-
-
Construye un nuevo objeto poseído en
*
this
usando
traits
::
construct
con
*
other
como argumento, usando el asignador
update_alloc
?
other.
alloc:alloc. - El objeto previamente poseído en * this (si existe) se destruye usando traits :: destroy y luego se desasigna el almacenamiento.
-
papunta al nuevo objeto poseído.
-
Construye un nuevo objeto poseído en
*
this
usando
traits
::
construct
con
*
other
como argumento, usando el asignador
update_alloc
?
other.
alloc
se reemplaza con una copia de
other.
alloc
.
- Si other no tiene valor, * this se convierte en sin valor y el objeto poseído por * this (si existe) se destruye usando traits :: destroy y luego se desasigna el almacenamiento.
-
De lo contrario, si
alloc== other.alloces true , intercambia los objetos poseídos en * this y other ; el objeto poseído en other (si existe) se destruye usando traits :: destroy y luego se desasigna el almacenamiento. - De lo contrario:
-
-
Construye un nuevo objeto poseído en
*
this
usando
traits
::
construct
con
std
::
move
(
*
other
)
como argumento, usando el asignador
update_alloc
?
other.
alloc:alloc. - El objeto previamente poseído en * this (si existe) se destruye usando traits :: destroy y luego se desasigna el almacenamiento.
-
papunta al nuevo objeto poseído.
-
Construye un nuevo objeto poseído en
*
this
usando
traits
::
construct
con
std
::
move
(
*
other
)
como argumento, usando el asignador
update_alloc
?
other.
alloc
se reemplaza con una copia de
other.
alloc
.
alloc
. De lo contrario, equivalente a
**
this
=
std::
forward
<
U
>
(
value
)
.
- std:: is_same_v < std:: remove_cvref_t < U > , std :: indirect > es false .
- std:: is_constructible_v < T, U > es true .
- std:: is_assignable_v < T & , U > es true .
Contenidos |
Parámetros
| otro | - |
otro objeto
indirect
cuyo valor poseído (si existe) se utiliza para la asignación
|
| valor | - | valor para asignar o construir el valor poseído |
Valor de retorno
* this
Excepciones
T
, no tiene efecto.
T
, el estado de
this
-
>
p
está definido por la garantía de seguridad de excepciones del operador de asignación de copia de
T
.
propagate_on_container_move_assignment
::
value
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |