std::atomic_fetch_max, std::atomic_fetch_max_explicit
| Defined in header <atomic>
|
||
| template< class T > T atomic_fetch_max( std::atomic<T>* obj, |
(1) | (since C++26) |
| template< class T > T atomic_fetch_max( volatile std::atomic<T>* obj, |
(2) | (since C++26) |
| template< class T > T atomic_fetch_max_explicit( std::atomic<T>* obj, |
(3) | (since C++26) |
| template< class T > T atomic_fetch_max_explicit( volatile std::atomic<T>* obj, |
(4) | (since C++26) |
Atomically replaces the value pointed by obj with the result of std::max between the old value of obj and arg. Returns the value obj held previously. The operation is performed as if the following was executed:
If std::atomic<T> has no fetch_max member (this member is only provided for integral and pointer types except bool), the program is ill-formed.
Parameters
| obj | - | pointer to the atomic object to modify |
| arg | - | the value to std::max with the value stored in the atomic object |
| order | - | the memory synchronization ordering |
Return value
The value immediately preceding the effects of this function in the modification order of *obj.
Notes
| Feature-test macro | Value | Std | Feature |
|---|---|---|---|
__cpp_lib_atomic_min_max |
202403L |
(C++26) | Atomic minimum/maximum |
Example
| This section is incomplete Reason: no example |
See also
| (C++26) |
atomically performs std::max between the argument and the value of the atomic object and obtains the value held previously (public member function of std::atomic<T>) |
| (C++26)(C++26) |
replaces the atomic object with the result of std::min with a non-atomic argument and obtains the previous value of the atomic (function template) |