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)
специализирует атомные операции для 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/w/cpp/atomic/atomic_store

Spec-Zone.ru

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