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)(удалено в 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