std:: atomic_fetch_min, std:: atomic_fetch_min_explicit
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ヘッダーで定義
<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 が保持していた値を返します。この操作は以下のように実行されたかのように行われます:
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>
の公開メンバ関数)
|
|
(C++26)
(C++26)
|
アトミックオブジェクトを非アトミックな引数との
std::max
の結果で置き換え、アトミックオブジェクトの以前の値を取得する
(関数テンプレート) |