volatile atomic< integral-type >*,
integral-type * old_value, integral-type new_value) noexcept;
bool atomic_compare_exchange_weak(
atomic< integral-type >*,
integral-type * old_value, integral-type new_value) noexcept;
bool atomic_compare_exchange_weak_explicit(
volatile atomic< integral-type >*,
integral-type * old_value, integral-type new_value,
memory_order success_order,
memory_order failure_order) noexcept;
bool atomic_compare_exchange_weak_explicit(
atomic< integral-type >*,
integral-type * old_value, integral-type new_value,
memory_order success_order,
memory_order failure_order) noexcept;
integral-type atomic_fetch_add(
volatile atomic< integral-type >*, integral-type ) noexcept;
integral-type atomic_fetch_add(
atomic< integral-type >*, integral-type ) noexcept;
integral-type atomic_fetch_add_explicit(
volatile atomic< integral-type >*, integral-type ,
memory_order) noexcept;
integral-type atomic_fetch_add_explicit(
atomic< integral-type >*, integral-type , memory_order) noexcept;
integral-type atomic_fetch_sub(
volatile atomic< integral-type >*, integral-type ) noexcept;
integral-type atomic_fetch_sub(
atomic< integral-type >*, integral-type ) noexcept;
integral-type atomic_fetch_sub_explicit(
volatile atomic< integral-type >*,
integral-type , memory_order) noexcept;
integral-type atomic_fetch_sub_explicit(
atomic< integral-type >*, integral-type , memory_order) noexcept;
integral-type atomic_fetch_and(
volatile atomic< integral-type >*, integral-type ) noexcept;
integral-type atomic_fetch_and(
atomic< integral-type >*, integral-type ) noexcept;
integral-type atomic_fetch_and_explicit(
volatile atomic< integral-type >*,
integral-type , memory_order) noexcept;
integral-type atomic_fetch_and_explicit(
atomic< integral-type >*, integral-type , memory_order) noexcept;
integral-type atomic_fetch_or(
volatile atomic< integral-type >*, integral-type ) noexcept;
integral-type atomic_fetch_or(
atomic< integral-type >*, integral-type ) noexcept;
integral-type atomic_fetch_or_explicit(
volatile atomic< integral-type >*,
integral-type , memory_order) noexcept;
integral-type atomic_fetch_or_explicit(
atomic< integral-type >*, integral-type , memory_order) noexcept;
integral-type atomic_fetch_xor(
volatile atomic< integral-type >*, integral-type ) noexcept;
integral-type atomic_fetch_xor(
atomic< integral-type >*, integral-type ) noexcept;
integral-type atomic_fetch_xor_explicit(
volatile atomic< integral-type >*,
integral-type , memory_order) noexcept;
integral-type atomic_fetch_xor_explicit(
atomic< integral-type >*, integral-type , memory_order) noexcept;
Те операции, которые предоставляются также основным шаблоном (см. D.3.8), имеют точно такую же семантику.
STD::ATOMIC::FETCH_ADD
, ФУНКЦИЯ-ЧЛЕН
Атомарно загружает значение и заменяет его суммой его самого и аргумента i
.
Объявление
fetch_add(
integral-type i, memory_order order = memory_order_seq_cst)
volatile noexcept;
integral-type fetch_add(
integral-type i, memory_order order = memory_order_seq_cst)
noexcept;
Результат
Атомарно возвращает прежнее значение *this
и сохраняет в *this
значение old-value + i
.
Возвращаемое значение
Значение *this
непосредственно перед сохранением.
Исключения
Нет.
Примечание. Это атомарная операция чтения-модификации-записи для ячейки памяти, содержащей *this
.
STD::ATOMIC_FETCH_ADD
, ФУНКЦИЯ, HE ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Атомарно читает значение из экземпляра atomic< integral-type >
и заменяет его суммой этого значения и аргумента i
.
Объявление
integral- type atomic_fetch_add(
volatile atomic< integral-type >* p, integral-type i) noexcept;
integral-type atomic_fetch_add(
atomic< integral-type >* p, integral-type i) noexcept;
Результат
return p->fetch_add(i);
STD::ATOMIC_FETCH_ADD_EXPLICIT
, ФУНКЦИЯ, HE ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ
КЛАССА
Атомарно читает значение из экземпляра atomic< integral-type >
и заменяет его суммой этого значения и аргумента i
.
Объявление
integral-type atomic_fetch_add_explicit(
volatile atomic< integral-type >* p, integral-type i,
memory_order order) noexcept;
integral-type atomic_fetch_add_explicit(
atomic< integral-type >* p, integral-type i,
memory_order order) noexcept;
Результат
return p->fetch_add(i,order);
STD::ATOMIC::FETCH_SUB
, ФУНКЦИЯ-ЧЛЕН
Атомарно читает значение и заменяет его разностью этого значения и аргумента i
.
Читать дальше