Примечание. Если время жизни объекта std::atomic не статическое, то значение, которое будет иметь объект, инициализированный конструктором по умолчанию, непредсказуемо.
Нет.
STD::ATOMIC_INIT, ФУНКЦИЯ, НЕ ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Неатомарно сохраняет указанное значение в объекте типа std::atomic.
template
void atomic_init(
atomic
template
void atomic_init(atomic
Неатомарно сохраняет значение v в *p. Вызов atomic_init() с передачей в качестве аргумента объекта atomic, который не был сконструирован по умолчанию или над которым производились какие-нибудь операции после конструирования, является неопределенным поведением.
Примечание. Поскольку эта операция сохранения неатомарна, то одновременный доступ к объекту, на который указывает p, из другого потока (даже с помощью атомарной операции) представляет собой гонку за данными.
Нет.
STD::ATOMIC, КОНВЕРТИРУЮЩИЙ КОНСТРУКТОР
Конструирует экземпляр std::atomic из переданного значения типа BaseType.
constexpr atomic(BaseType b) noexcept;
Конструирует новый объект std::atomic из значения b. Для объектов со статическим временем жизни обеспечивается статическая инициализация.
Нет.
STD::ATOMIC, КОНВЕРТИРУЮЩИЙ ОПЕРАТОР ПРИСВАИВАНИЯ
Сохраняет новое значение в *this.
BaseType operator=(BaseType b) volatile noexcept;
BaseType operator=(BaseType b) noexcept;
return this->store(b);
STD::ATOMIC::IS_LOCK_FREE, ФУНКЦИЯ-ЧЛЕН
Сообщает, являются ли операции над *this свободными от блокировок.
bool is_lock_free() const volatile noexcept;
bool is_lock_free() const noexcept;
true, если операции над *this свободны от блокировок, иначе false.
Нет.
STD::ATOMIC_IS_LOCK_FREE, ФУНКЦИЯ, НЕ ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА
Сообщает, являются ли операции над *this свободными от блокировок.
template
bool atomic_is_lock_free(
volatile const atomic
template
bool atomic_is_lock_free(const atomic
return p->is_lock_free();
STD::ATOMIC::LOAD, ФУНКЦИЯ-ЧЛЕН
Атомарно загружает текущее значение объекта std::atomic.
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
template
BaseType atomic_load(const atomic
return p->load();