std::atomic_ref<T>::fetch_or
From cppreference.com
< cpp | atomic | atomic ref
Tがcv bool以外の整数型の場合にのみ提供される |
||
| value_type fetch_or( value_type arg, std::memory_order order = |
(C++20以降) | |
参照されているオブジェクトの現在の値を、その値と arg のビットごとのORの結果でアトミックに置き換えます。この操作は読み取り・変更・書き込み操作です。メモリは order の値に従って影響を受けます。
このオーバーロードは、falseであるstd::is_const_v<T>場合にのみ、オーバーロード解決に参加します。
[編集] パラメータ
| arg | - | ビットごとのORのもう一方の引数 |
| order | - | 強制するメモリ順序制約 |
[編集] 戻り値
この関数が影響を与える直前の、参照されているオブジェクトの値。
[編集] 不具合報告
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| LWG 3508 (P3323R1) |
C++20 | fetch_or は const T にとって意味がありませんでした。 |
非 const T のみを受け入れるように制約されました。 |