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: