Compartilhar via


Função atomic_compare_exchange_strong_explicit

Realiza uma exchange e comparar atômica operação.

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

  • Exp
    Um ponteiro para um valor do tipo Ty.

  • Value
    Um valor do tipo Ty.

  • Order1
    Primeiro memory_order argumento.

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

Valor de retorno

A bool que indica o resultado da comparação de valor.

Comentários

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

Requisitos

Cabeçalho: atômica

Namespace: std

Consulte também

Referência

<atomic>

Estrutura atômica