std::atomic<T>:: operator&=,|=,^=
From cppreference.net
C++
Concurrency support library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::atomic
| Member functions | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Constants | ||||
|
(C++17)
|
||||
| Specialized member functions | ||||
|
Specialized for integral,
floating-point (C++20) and pointer types |
||||
|
Specialized for integral and
pointer types only |
||||
|
(C++26)
|
||||
|
(C++26)
|
||||
| Specialized for integral types only | ||||
|
atomic::operator&=
atomic::operator|=
atomic::operator^=
|
atomic<
Integral
>
特殊化のみのメンバー
|
||
|
T operator
&
=
(
T arg
)
noexcept
;
|
(1) | (C++11以降) |
|
T operator
&
=
(
T arg
)
volatile
noexcept
;
|
(2) | (C++11以降) |
|
T operator
|
=
(
T arg
)
noexcept
;
|
(3) | (C++11以降) |
|
T operator
|
=
(
T arg
)
volatile
noexcept
;
|
(4) | (C++11以降) |
|
T operator
^
=
(
T arg
)
noexcept
;
|
(5) | (C++11以降) |
|
T operator
^
=
(
T arg
)
volatile
noexcept
;
|
(6) | (C++11以降) |
現在の値を、前の値と arg を含む演算結果で原子的に置き換えます。この操作は読み取り-修正-書き込み操作です。
- operator & = アトミックなビット単位の論理積を実行します。次と等価です: return fetch_and ( arg ) & arg ; 。
- operator | = アトミックなビット単位の論理和を実行します。次と等価です: return fetch_or ( arg ) | arg ; 。
- operator ^ = アトミックなビット単位の排他的論理和を実行します。次と等価です: return fetch_xor ( arg ) ^ arg ; 。
|
|
(C++20以降) |
目次 |
パラメータ
| arg | - | 算術演算の引数 |
戻り値
結果の値(つまり、対応する二項演算子を、 * this の 変更順序 において、対応するメンバー関数の効果の直前にあった値に適用した結果)。
注記
ほとんどの複合代入演算子とは異なり、アトミック型に対する複合代入演算子は左辺引数への参照を返しません。代わりに格納された値のコピーを返します。
関連項目
|
引数とアトミックオブジェクトの値との間でビット単位のANDをアトミックに実行し、以前に保持されていた値を取得する
(公開メンバ関数) |
|
|
引数とアトミックオブジェクトの値との間でビット単位のORをアトミックに実行し、以前に保持されていた値を取得する
(公開メンバ関数) |
|
|
引数とアトミックオブジェクトの値との間でビット単位のXORをアトミックに実行し、以前に保持されていた値を取得する
(公開メンバ関数) |
|
|
アトミック値を1つインクリメントまたはデクリメントする
(公開メンバ関数) |
|
|
アトミック値に加算または減算する
(公開メンバ関数) |