Scroll to navigation

std::atomic_fetch_max,std::atomic_fetch_max_explicit(3) C++ Standard Libary std::atomic_fetch_max,std::atomic_fetch_max_explicit(3)

NAME

std::atomic_fetch_max,std::atomic_fetch_max_explicit - std::atomic_fetch_max,std::atomic_fetch_max_explicit

Synopsis


Defined in header <atomic>
template< class T >


T atomic_fetch_max( std::atomic<T>* obj, (1) (since C++26)


typename std::atomic<T>::value_type arg )
noexcept;
template< class T >


T atomic_fetch_max( volatile std::atomic<T>* obj, (2) (since C++26)


typename std::atomic<T>::value_type arg )
noexcept;
template< class T >


T atomic_fetch_max_explicit( std::atomic<T>* obj,
typename std::atomic<T>::value_type (3) (since C++26)
arg,


std::memory_order order ) noexcept;
template< class T >


T atomic_fetch_max_explicit( volatile std::atomic<T>* obj,
typename std::atomic<T>::value_type (4) (since C++26)
arg,


std::memory_order order ) noexcept;


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:


1,2) obj->fetch_max(arg)
3,4) obj->fetch_max(arg, order)


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


atomically performs std::max between the argument and the
fetch_max value of the atomic object and obtains the value held
(C++26) previously
(public member function of std::atomic<T>)
atomic_fetch_min replaces the atomic object with the result of std::min
atomic_fetch_min_explicit with a non-atomic argument and obtains the previous value
(C++26) of the atomic
(C++26) (function template)

Category:


* Todo no example

2024.06.10 http://cppreference.com