std:: atomic_fetch_max, std:: atomic_fetch_max_explicit
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ヘッダーで定義
<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 が以前保持していた値を返します。この操作は以下のコードが実行されたかのように行われます:
std::atomic<T>
に
fetch_max
メンバが存在しない場合(このメンバは
整数型
および
ポインタ型
に対してのみ提供され、
bool
を除く)、プログラムは不適格となります。
目次 |
パラメータ
| obj | - | 変更対象のアトミックオブジェクトへのポインタ |
| arg | - | アトミックオブジェクトに格納された値と std::max を取る値 |
| order | - | メモリ同期順序 |
戻り値
この関数の効果が適用される直前の値、 modification order における * obj の値。
注記
| 機能テスト マクロ | 値 | 標準 | 機能 |
|---|---|---|---|
__cpp_lib_atomic_min_max
|
202403L
|
(C++26) | アトミック最小値/最大値 |
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
(C++26)
|
引数とアトミックオブジェクトの値の間で
std::max
をアトミックに実行し、以前に保持されていた値を取得する
(
std::atomic<T>
の公開メンバ関数)
|
|
(C++26)
(C++26)
|
アトミックオブジェクトを非アトミックな引数との
std::min
の結果で置き換え、アトミックオブジェクトの以前の値を取得する
(関数テンプレート) |