std::atomic_fetch_xor, std::atomic_fetch_xor_explicit
De cppreference.com
<tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num t-dcl-rev-notes t-since-cxx11 ">
</tbody><tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num t-dcl-rev-notes t-since-cxx11 ">
</tbody><tbody>
</tbody>
| Definido en el archivo de encabezado <atomic>
|
||
| (1) | (desde C++11) | |
template< class T > T atomic_fetch_xor( std::atomic<T>* obj, typename std::atomic<T>::value_type arg ) noexcept; |
||
template< class T > T atomic_fetch_xor( volatile std::atomic<T>* obj, typename std::atomic<T>::value_type arg ) noexcept; |
||
| (2) | (desde C++11) | |
template< class T > T atomic_fetch_xor_explicit( std::atomic<T>* obj, typename std::atomic<T>::value_type arg, std::memory_order order) noexcept; |
||
template< class T > T atomic_fetch_xor_explicit( volatile std::atomic<T>* obj, typename std::atomic<T>::value_type arg, std::memory_order order) noexcept; |
||
Reemplaza atómicamente el valor al que apunta obj con el resultado de una operación XOR bit a bit entre el valor antiguo de obj y arg. Devuelve el valor que obj tenía anteriormente.
La operación se realiza como si se hubiera ejecutado lo siguiente:
1)
obj->fetch_xor(arg)2)
obj->fetch_xor(arg, order)Si std::atomic<T> no tiene un miembro fetch_xor (este miembro solo se proporciona para tipos enteros), el programa está mal formado.
Parámetros
| obj | - | Un puntero al objeto atómico a modificar. bool no es un tipo entero a los efectos de las operaciones atómicas.
|
| arg | - | El valor al cual aplicar la operación XOR bit a bit y al valor almacenado en el objeto atómico. |
| order | - | El ordenamiento de sincronización de memoria para esta operación. Se permiten todos los valores. |
Valor de retorno
El valor inmediatamente anterior a los efectos de esta función en el orden de modificación de *obj.
Posible implementación
template< class T >
T atomic_fetch_xor( std::atomic<T>* obj, typename std::atomic<T>::value_type arg )
{
return obj->fetch_xor(arg);
}
|
Ejemplo
| Esta sección está incompleta Razón: sin ejemplo |
Informes de defectos
Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.
| ID | Aplicado a | Comportamiento según lo publicado | Comportamiento correcto |
|---|---|---|---|
| P0558R1 | C++11 | Se requiere una coincidencia de tipo exacta porque Tse deduce de varios argumentos. |
T se deduce únicamente del argumento atomic.
|
Véase también
(C++11) |
atómicamente realiza bit a bit XOR entre el argumento y el valor del objeto atómico y obtiene el valor que tenía antes Original: atomically performs bitwise XOR between the argument and the value of the atomic object and obtains the value held previously The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro pública de std::atomic)
|
(C++11)(C++11) |
Reemplaza el objeto atómico con el resultado de la operación lógica OR con un argumento no atómico y obtiene el valor anterior del objeto atómico. (plantilla de función) |
(C++11)(C++11) |
Reemplaza el objeto atómico con el resultado de la operación lógica AND con un argumento no atómico y obtiene el valor anterior del objeto atómico. (plantilla de función) |
Documentación de C para atomic_fetch_xor, atomic_fetch_xor_explicit
| |