Spec-Zone.ru › C++

std::atomic_store, std::atomic_store_explicit

Определён в заголовочном файле <atomic>
template< class T >
void atomic_store( std::atomic<T>* obj,
                   typename std::atomic<T>::value_type desired ) noexcept;
(1) (начиная с C++11)
template< class T >
void atomic_store( volatile std::atomic<T>* obj,
                   typename std::atomic<T>::value_type desired ) noexcept;
(2) (начиная с C++11)
template< class T >
void atomic_store_explicit( std::atomic<T>* obj,
                            typename std::atomic<T>::value_type desired, 
                            std::memory_order order) noexcept;
(3) (начиная с C++11)
template< class T >
void atomic_store_explicit( volatile std::atomic<T>* obj,
                            typename std::atomic<T>::value_type desired, 
                            std::memory_order order) noexcept;
(4) (начиная с C++11)
1,2) Атомарно заменяет значение, на которое указывает obj, значением desired, как если бы выполнялось obj->store(desired).
3,4) Атомарно заменяет значение, на которое указывает obj, значением desired, как если бы выполнялось obj->store(desired, order).
Если order является одним из std::memory_order_consume, std::memory_order_acquire и std::memory_order_acq_rel, поведение не определено.

Параметры

obj - указатель на изменяемый атомарный объект
desired - значение, которое нужно сохранить в атомарном объекте
order - порядок синхронизации памяти

Возвращаемое значение

(нет)

Отчёты об ошибках

Следующие отчёты об ошибках, изменяющие поведение, были применены задним числом к ранее опубликованным стандартам C++.

DR Применён к Поведение согласно опубликованной версии Правильное поведение
P0558R1 C++11 требовалось точное совпадение типов, поскольку
T выводился из нескольких аргументов
T выводится только
из obj

См. также

store
атомарно заменяет значение атомарного объекта неатомарным аргументом
(открытая функция-член std::atomic<T>)
atomic_loadatomic_load_explicit
(C++11)(C++11)
атомарно получает значение, хранящееся в атомарном объекте
(шаблон функции)
memory_order
(C++11)
задаёт ограничения на порядок операций с памятью для указанной атомарной операции
(перечисление)
std::atomic_store(std::shared_ptr) std::atomic_store_explicit(std::shared_ptr)
(устарело в C++20)(удалено в C++26)
специализирует атомарные операции для std::shared_ptr
(шаблон функции)
Документация по C для atomic_store, atomic_store_explicit

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/atomic/atomic_store

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API