atomic_compare_exchange_weak_explicit функция
Выполняет сравнение и слабых атомарный обменяйте операции.
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;
Параметры
Atom
Указатель на объект atomic, в котором хранится значение типа Ty.Exp
Указатель на значение типа Ty.Value
Значение типа Ty.Order1
Первый аргумент memory_order.Order2
Второй аргумент memory_order.Значение Order2 не может быть memory_order_release или memory_order_acq_rel, ни ее сильне может быть меньше значения Order1.
Возвращаемое значение
bool, показывающее результат сравнения значения.
Заметки
Атомарный сравнивает и операция обмена сравнивает значение, хранящееся в объекте, указанн к Atom со значением, указанно к Exp.Если значения равны, то операция заменяет значение, хранящееся в объекте, указанн к Atom с Val с помощью операции read-modify-write и применения ограничения память- заказа, определенные Order1.Если значения не равны, то операция заменяет значение, указанно к Exp со значением, которое хранится в объекте, указанн к Atom и применяет ограничения память- заказа, определенные Order2.
Слабый атомарный сравнивает и операция обмена выполняет обмен, если сравниваемые значения равны.Однако если значения не равны, не гарантируется выполнение операции обмена.
Требования
Атомарный заголовок:
Std пространство имен: