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