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