名前空間
変種
操作

std::atomic_fetch_max, std::atomic_fetch_max_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_maxatomic_fetch_max_explicit
(C++26)(C++26)
アトミックフラグのためのフリー関数
 
ヘッダー <atomic> で定義
template< class T >

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

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

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

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

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