std::atomic_fetch_min, std::atomic_fetch_min_explicit
From cppreference.com
| ヘッダー <atomic> で定義 |
||
| template< class T > T atomic_fetch_min( std::atomic<T>* obj, |
(1) | (C++26以降) |
| template< class T > T atomic_fetch_min( volatile std::atomic<T>* obj, |
(2) | (C++26以降) |
| template< class T > T atomic_fetch_min_explicit( std::atomic<T>* obj, |
(3) | (C++26以降) |
| template< class T > T atomic_fetch_min_explicit( volatile std::atomic<T>* obj, |
(4) | (C++26以降) |
アトミックに、objが指す値を、objの古い値とargとの間のstd::minの結果で置き換えます。objが以前保持していた値を返します。この操作は、以下が実行されたかのように行われます。
1,2) obj->fetch_min(arg)
3,4) obj->fetch_min(arg, order)
std::atomic<T>にfetch_minメンバがない場合(このメンバはboolを除く整数型およびポインタ型のみに提供されます)、プログラムは不定形です。
目次 |
[編集] パラメータ
| obj | - | 操作対象のアトミックオブジェクトへのポインタ |
| arg | - | アトミックオブジェクトに格納されている値とstd::minするための値 |
| order | - | メモリ同期順序 |
[編集] 戻り値
*objの修正順序において、この関数の効果の直前の値。
[編集] 注記
| 機能テストマクロ | 値 | 規格 | 機能 |
|---|---|---|---|
__cpp_lib_atomic_min_max |
202403L |
(C++26) | アトミック最小/最大 |
[編集] 例
| このセクションは未完成です 理由: 例がありません |
[編集] 関連項目
| (C++26) |
引数とアトミックオブジェクトの値の間でstd::minをアトミックに実行し、以前保持されていた値を取得します。 ( std::atomic<T> の public メンバ関数) |
| (C++26)(C++26) |
アトミックオブジェクトを非アトミックな引数との std::max の結果で置き換え、アトミックオブジェクトの以前の値を取得する (関数テンプレート) |