Функция 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.
Слабое атомарное сравнивает и выполняет операции обмена и если сравнение двух значений. Однако если значения не равны, не гарантируется выполнение операции обмена.
Требования
Заголовок: atomic
Пространство имен: std