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 |
См. также
| атомарно заменяет значение атомного объекта на неатомный аргумент (публичный член-функция std::atomic<T>) |
|
|
(C++11)(C++11) |
атомарно получает значение, сохраненное в атомном объекте (шаблон функции) |
|
(C++11) |
определяет ограничения порядка памяти для данной атомной операции (перечисление) |
|
(устарело в 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