std::atomic_fetch_max, std::atomic_fetch_max_explicit
From cppreference.com
| ヘッダー <atomic> で定義 |
||
| template< class T > T atomic_fetch_max( std::atomic<T>* obj, |
(1) | (C++26以降) |
| template< class T > T atomic_fetch_max( volatile std::atomic<T>* obj, |
(2) | (C++26以降) |
| template< class T > T atomic_fetch_max_explicit( std::atomic<T>* obj, |
(3) | (C++26以降) |
| template< class T > T atomic_fetch_max_explicit( volatile std::atomic<T>* obj, |
(4) | (C++26以降) |
アトミックに、objが指す値を、objの古い値とargの間のstd::maxの結果で置き換えます。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>のpublicメンバ関数) |
| (C++26)(C++26) |
アトミックオブジェクトを非アトミックな引数との std::min の結果で置き換え、アトミックオブジェクトの以前の値を取得する (関数テンプレート) |