std::atomic_fetch_max, std::atomic_fetch_max_explicit
Определено в заголовочном файле <atomic> | ||
|---|---|---|
template< class T >
T atomic_fetch_max( std::atomic<T>* obj,
typename std::atomic<T>::value_type arg ) noexcept;
| (1) | (начиная с C++26) |
template< class T >
T atomic_fetch_max( volatile std::atomic<T>* obj,
typename std::atomic<T>::value_type arg ) noexcept;
| (2) | (начиная с C++26) |
template< class T >
T atomic_fetch_max_explicit( std::atomic<T>* obj,
typename std::atomic<T>::value_type arg,
std::memory_order order ) noexcept;
| (3) | (начиная с C++26) |
template< class T >
T atomic_fetch_max_explicit( volatile std::atomic<T>* obj,
typename std::atomic<T>::value_type arg,
std::memory_order order ) noexcept;
| (4) | (начиная с C++26) |
Атомарно заменяет значение, на которое указывает obj, результатом std::max старого значения obj и arg. Возвращает значение, которое ранее содержалось в obj. Операция выполняется так, как если бы был выполнен следующий код:
1,2)
obj->fetch_max(arg)
3,4)
obj->fetch_max(arg, order)
Если у std::atomic<T> нет члена fetch_max (этот член предоставляется только для целочисленных и указательных типов, за исключением bool), программа некорректна.
Параметры
| obj | - | указатель на атомарный объект, который требуется изменить |
| arg | - | значение, которое требуется std::max со значением, хранящимся в атомарном объекте |
| order | - | порядок синхронизации памяти |
Возвращаемое значение
Значение, непосредственно предшествовавшее эффектам этой функции в порядке модификации *obj.
Примечания
| Макрос проверки поддержки возможностей | Значение | Стандарт | Возможность |
|---|---|---|---|
__cpp_lib_atomic_min_max | 202403L | (C++26) | Атомарное нахождение минимума/максимума |
Пример
См. также
|
(C++26) | атомарно выполняет std::max между аргументом и значением атомарного объекта и получает значение, которое содержалось в нём ранее (открытая функция-член std::atomic<T>) |
|
(C++26)(C++26) | заменяет атомарный объект результатом std::min с неатомарным аргументом и получает предыдущее значение атомарного объекта (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/atomic/atomic_fetch_max