std::atomic_ref<T>:: operator&=,|=,^=
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
(C++26)
|
||||
|
Operations for arithmetic types
(except
bool
and pointer-to-object)
|
||||
|
Operations for integral types
(except
bool
and pointer-to-object)
|
||||
|
(C++26)
|
||||
|
(C++26)
|
||||
|
Operations for integral types
(except
bool
)
|
||||
|
atomic_ref::operator&=
atomic_ref::operator|=
atomic_ref::operator^=
|
||||
| Constants | ||||
|
Proporcionado solo cuando
T
es un tipo integral distinto de
cv
bool
|
||
|
value_type operator
&
=
(
value_type arg
)
const
noexcept
;
|
(1) | (desde C++20) |
|
value_type operator
|
=
(
value_type arg
)
const
noexcept
;
|
(2) | (desde C++20) |
|
value_type operator
^
=
(
value_type arg
)
const
noexcept
;
|
(3) | (desde C++20) |
Reemplaza atómicamente el valor actual del objeto referenciado con el resultado del cálculo que involucra el valor anterior y arg . Estas operaciones son operaciones de lectura-modificación-escritura.
- operator & = realiza AND bit a bit atómico. Equivalente a return fetch_and ( arg ) & arg ; .
- operator ! = realiza OR bit a bit atómico. Equivalente a return fetch_or ( arg ) | arg ; .
- operator ^ = realiza XOR bit a bit atómico. Equivalente a return fetch_xor ( arg ) ^ arg ; .
Estas sobrecargas participan en la resolución de sobrecarga solo si std:: is_const_v < T > es false .
Contenidos |
Parámetros
| arg | - | el argumento para la operación aritmética |
Valor de retorno
El valor resultante (es decir, el resultado de aplicar el operador binario correspondiente al valor inmediatamente anterior a los efectos de la función miembro correspondiente).
Notas
A diferencia de la mayoría de los operadores de asignación compuesta, los operadores de asignación compuesta para
atomic_ref
no devuelven una referencia a sus argumentos del lado izquierdo. En su lugar, devuelven una copia del valor almacenado.
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
|
LWG 3508
( P3323R1 ) |
C++20 | los operadores de asignación compuesta carecían de sentido para const T |
restringidos para aceptar solo
T
no constante
|
Véase también
|
realiza atómicamente una operación AND a nivel de bits entre el argumento y el valor del objeto referenciado y obtiene el valor mantenido previamente
(función miembro pública) |
|
|
realiza atómicamente una operación OR a nivel de bits entre el argumento y el valor del objeto referenciado y obtiene el valor mantenido previamente
(función miembro pública) |
|
|
realiza atómicamente una operación XOR a nivel de bits entre el argumento y el valor del objeto referenciado y obtiene el valor mantenido previamente
(función miembro pública) |
|
|
incrementa o decrementa atómicamente el objeto referenciado en uno
(función miembro pública) |
|
|
suma o resta atómicamente del valor referenciado
(función miembro pública) |