Compartir a través de


atomic_compare_exchange_strong_explicit (Función)

Realiza una operación atómica de comparación e intercambio.

template <class _Ty>
inline bool atomic_compare_exchange_strong_explicit(
   volatile atomic<Ty> *Atom,
   Ty *Exp,
   Ty Value,
   memory_order Order1,
   memory_order Order2
) _NOEXCEPT;

template <class Ty>
inline bool atomic_compare_exchange_strong_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, el valor almacenado en el objeto al que apunta atom se reemplaza 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.

Requisitos

Encabezado: atomic

Espacio de nombres: std

Vea también

Referencia

<atomic>

atomic (Estructura)