Compartilhar via


Função atomic_compare_exchange_weak_explicit

Executa um atômico fraco comparam e trocam a operação.

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

  • Exp
    Um ponteiro para um valor de tipo Ty.

  • Value
    Um valor de tipo Ty.

  • Order1
    Primeiro argumento de memory_order .

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

Valor de retorno

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

Comentários

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

Um atômico fraco compara e a operação de troca executa uma troca se os valores são comparados iguais.Em o entanto, se os valores não são iguais, a operação não é garantida para executar uma troca.

Requisitos

Cabeçalho: atômico

namespace: STD

Consulte também

Referência

<atomic>

Estrutura atômica