BaseType load(memory_order order = memory_order_seq_cst)
const volatile noexcept;
BaseType load(
memory_order order = memory_order_seq_cst) const noexcept;
Предусловия
Параметр order
должен принимать одно из значений std::memory_order_relaxed
, std::memory_order_acquire
, std: :memory_order_consume
или std::memory_order_seq_cst
.
Результат
Атомарно загружает текущее, хранящееся в *this
.
Возвращаемое значение
Значение, хранящееся в *this
, в точке вызова.
Исключения
Нет.
Примечание. Это атомарная операция загрузки для ячейки памяти, содержащей *this
.
STD::ATOMIC_LOAD
, ФУНКЦИЯ, НЕ ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Атомарно загружает текущее значение объекта std::atomic
.
Объявление
template
BaseType atomic_load(volatile const atomic* p) noexcept;
template
BaseType atomic_load(const atomic* p) noexcept;
Результат
return p->load();
STD::ATOMIC_LOAD_EXPLICIT
, ФУНКЦИЯ, HE ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Атомарно загружает текущее значение объекта std::atomic
.
Объявление
template
BaseType atomic_load_explicit(
volatile const atomic* p,
memory_order order) noexcept;
template
BaseType atomic_load_explicit(
const atomic* p, memory_order order) noexcept;
Результат
return p->load(order);
STD::ATOMIC::OPERATOR
, ОПЕРАТОР ПРЕОБРАЗОВАНИЯ В ТИП BASETYPE
Загружает значение, хранящееся в *this
.
Объявление
operator BaseType() const volatile noexcept;
operator BaseType() const noexcept;
Результат
return this->load();
STD::ATOMIC::STORE
, ФУНКЦИЯ-ЧЛЕН
Атомарно сохраняет новое значение в объекте atomic
.
Объявление
void store(
BaseType new_value, memory_order order = memory_order_seq_cst)
volatile noexcept;
void store(
BaseType new_value, memory_order order = memory_order_seq_cst)
noexcept;
Предусловия
Параметр order
должен принимать одно из значений std::memory_order_relaxed
, std::memory_order_release
или std::memory_order_seq_cst
.
Результат
Атомарно сохраняет значение new_value
в *this
.
Исключения
Нет.
Примечание. Это атомарная операция сохранения для ячейки памяти, содержащей *this
.
STD::ATOMIC_STORE
, ФУНКЦИЯ, НЕ ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Атомарно сохраняет новое значение в объекте atomic
.
Объявление
template
void atomic_store(
volatile atomic* p, BaseType new_value) noexcept;
template
void atomic_store(
atomic* p, BaseType new_value) noexcept;
Результат
p->store(new_value);
STD::ATOMIC_STORE_EXPLICIT
, ФУНКЦИЯ, HE ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Атомарно сохраняет новое значение в объекте atomic
.
Объявление
template
void atomic_store_explicit(
volatile atomic* p, BaseType new_value,
memory_order order) noexcept;
template
void atomic_store_explicit(
atomic* p, BaseType new_value,
memory_order order) noexcept;
Результат
p->store(new_value, order);
STD::ATOMIC::EXCHANGE
, ФУНКЦИЯ-ЧЛЕН
Атомарно сохраняет новое значение и читает старое.
Объявление
BaseType exchange(
BaseType new_value,
memory_order order = memory_order_seq_cst) volatile noexcept;
Результат
Атомарно сохраняет значение new_value
в *this
и извлекает прежнее значение *this
.
Возвращаемое значение
Значение *this
непосредственно перед сохранением.
Исключения
Нет.
Примечание. Это атомарная операция чтения-модификации-записи для ячейки памяти, содержащей *this
.
STD::ATOMIC_EXCHANGE
, ФУНКЦИЯ, НЕ ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Атомарно сохраняет новое значение в объекте atomic
и читает предыдущее значение.
Объявление
template
BaseType atomic_exchange(
volatile atomic* p, BaseType new_value) noexcept;
template
BaseType atomic_exchange(
atomic* p, BaseType new_value) noexcept;
Результат
return p->exchange(new_value);
STD::ATOMIC_EXCHANGE_EXPLICIT
, ФУНКЦИЯ, HE ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Атомарно сохраняет новое значение в объекте atomic
и читает предыдущее значение.
Объявление
template
BaseType atomic_exchange_explicit(
volatile atomic* p,
BaseType new_value, memory_order order)
noexcept;
template
BaseType atomic_exchange_explicit(
atomic* p,
BaseType new_value, memory_order order) noexcept;
Результат
return p->exchange(new_value, order);
STD::ATOMIC::COMPARE_EXCHANGE_STRONG
, ФУНКЦИЯ-ЧЛЕН
Атомарно сравнивает значение с ожидаемым и, если они равны, сохраняет новое значение. Если значения не равны, то заменяет ожидаемое значение прочитанным.
Читать дальше