Partilhar via


Função atomic_compare_exchange_strong_explicit

Executa uma operação atômica de comparação e troca.

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
    Um ponteiro para um objeto atomic que armazena um valor do tipo Ty.

  • Exp
    Um ponteiro para um valor do tipo Ty.

  • Value
    Um valor do tipo Ty.

  • Order1
    Primeiro argumento memory_order.

  • Order2
    Segundo argumento memory_order. O valor de Order2 não pode ser memory_order_release ou memory_order_acq_rel, não pode ser mais forte que o valor de Order1.

Valor de retorno

Um bool que indica o resultado da comparação de valores.

Comentários

Uma operação atômica de comparação e troca compara o valor armazenado no objeto apontado por Atom com o valor apontado por Exp. Se os valores forem iguais, o valor que é armazenado no objeto que é apontado por atom é substituído por Val usando uma operação de read-modify-write e aplicando as restrições de ordem de memória que são especificadas por Order1. Se os valores não forem iguais, a operação substitui o valor que é apontado pelo Exp pelo valor que é armazenado no objeto que é apontado por Atom e aplica as restrições de ordem de memória que são especificadas por Order2.

Requisitos

Cabeçalho: atômico

std de Namespace:

Consulte também

Referência

<atomic>

Estrutura atomic