atomic_compare_exchange_weak_explicit (Función)
Realiza una operación atómica débil de comparación e intercambio.
template <class Ty>
inline bool atomic_compare_exchange_weak_explicit(
volatile atomic<Ty> *Atom,
Ty *Exp,
Ty Value,
memory_order Order1,
memory_order Order2
) _NOEXCEPT;
template <class Ty>
inline bool atomic_compare_exchange_weak_explicit(
atomic<Ty> *Atom,
Ty *Exp,
Ty Value,
memory_order Order1,
memory_order Order2
) _NOEXCEPT;
Parámetros
Atom
Puntero a un objeto atomic que almacena un valor de tipo Ty.Exp
Puntero a un valor de tipo Ty.Value
Valor de tipo Ty.Order1
Primer argumento memory_order.Order2
Segundo argumento memory_order. El valor de Order2 no puede ser memory_order_release o memory_order_acq_rel, ni puede ser más seguro que el valor de Order1.
Valor devuelto
Número bool que indica el resultado de la comparación de valores.
Comentarios
Una operación atómica de comparación e intercambio compara el valor almacenado en el objeto al que apunta Atom con el valor al que apunta Exp. Si los valores son iguales, la operación reemplaza el valor almacenado en el objeto al que apunta Atom con Val mediante una operación read-modify-write y la aplicación de las restricciones de ordenación de memoria especificadas por Order1. Si los valores no son iguales, la operación reemplaza el valor al que apunta Exp con el valor almacenado en el objeto al que apunta Atom y aplica las restricciones de ordenación de memoria especificadas por Order2.
Una operación atómica débil de comparación e intercambio realiza un intercambio si los valores comparados son iguales. Sin embargo, si los valores no son iguales, no se garantiza que la operación realice un intercambio.
Requisitos
Encabezado: atomic
Espacio de nombres: std