名前空間
変種
操作

std::atomic_fetch_min, std::atomic_fetch_min_explicit

From cppreference.com
< cpp‎ | atomic
 
 
並行性サポートライブラリ
スレッド
(C++11)
(C++20)
this_thread 名前空間
(C++11)
(C++11)
(C++11)
協調的なキャンセル
排他制御
(C++11)
汎用ロック管理
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
条件変数
(C++11)
セマフォ
ラッチとバリア
(C++20)
(C++20)
future
(C++11)
(C++11)
(C++11)
(C++11)
安全なメモリ解放 (Safe Reclamation)
(C++26)
ハザードポインタ
アトミック型
(C++11)
(C++20)
アトミック型の初期化
(C++11)(C++20で非推奨)
(C++11)(C++20で非推奨)
メモリオーダー
(C++11)(C++26で非推奨)
アトミック操作のためのフリー関数
atomic_fetch_minatomic_fetch_min_explicit
(C++26)(C++26)
アトミックフラグのためのフリー関数
 
ヘッダー <atomic> で定義
template< class T >

T atomic_fetch_min( std::atomic<T>* obj,

                    typename std::atomic<T>::value_type arg ) noexcept;
(1) (C++26以降)
template< class T >

T atomic_fetch_min( volatile std::atomic<T>* obj,

                    typename std::atomic<T>::value_type arg ) noexcept;
(2) (C++26以降)
template< class T >

T atomic_fetch_min_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_min_explicit( volatile std::atomic<T>* obj,
                             typename std::atomic<T>::value_type arg,

                             std::memory_order order ) noexcept;
(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 メンバ関数) [編集]
アトミックオブジェクトを非アトミックな引数との std::max の結果で置き換え、アトミックオブジェクトの以前の値を取得する
(関数テンプレート) [編集]
English 日本語 中文(简体) 中文(繁體)