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