close
Espacios de nombres
Variantes

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

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 T
se 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) [editar]
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) [editar]
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) [editar]
Documentación de C para atomic_fetch_xor, atomic_fetch_xor_explicit