std:: atomic_fetch_xor, std:: atomic_fetch_xor_explicit
|
ヘッダ
<atomic>
で定義
|
||
|
template
<
class
T
>
T atomic_fetch_xor
(
std::
atomic
<
T
>
*
obj,
|
(1) | (C++11以降) |
|
template
<
class
T
>
T atomic_fetch_xor
(
volatile
std::
atomic
<
T
>
*
obj,
|
(2) | (C++11以降) |
|
template
<
class
T
>
T atomic_fetch_xor_explicit
(
std::
atomic
<
T
>
*
obj,
|
(3) | (C++11以降) |
|
template
<
class
T
>
T atomic_fetch_xor_explicit
(
volatile
std::
atomic
<
T
>
*
obj,
|
(4) | (C++11以降) |
obj が指す値を、 obj の旧値と arg のビット単位XOR演算結果で原子的に置き換えます。 以前に保持されていた obj の値を返します。
この操作は、以下のコードが実行されるかのように行われます:
std::atomic<T>
に
fetch_xor
メンバが存在しない場合(このメンバは
integral types
に対してのみ提供され、
bool
を除く)、プログラムは不適格となります。
目次 |
パラメータ
| obj | - | 変更対象のアトミックオブジェクトへのポインタ |
| arg | - | アトミックオブジェクトに格納された値とビット単位XORする値 |
| order | - | メモリ同期順序 |
戻り値
この関数の効果が適用される直前の値、 変更順序 において * obj のもの。
例
|
このセクションは不完全です
理由: 例がありません |
不具合報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
| DR | 適用対象 | 公開時の動作 | 正しい動作 |
|---|---|---|---|
| P0558R1 | C++11 |
厳密な型一致が要求されていた。これは
T
が複数の引数から推論されていたため
|
T
は
obj からのみ推論される |
関連項目
|
引数とアトミックオブジェクトの値との間でビット単位のXORをアトミックに実行し、以前に保持されていた値を取得する
(
std::atomic<T>
の公開メンバ関数)
|
|
|
(C++11)
(C++11)
|
非アトミック引数とのビット単位のORの結果でアトミックオブジェクトを置き換え、アトミックオブジェクトの以前の値を取得する
(関数テンプレート) |
|
(C++11)
(C++11)
|
非アトミック引数とのビット単位のANDの結果でアトミックオブジェクトを置き換え、アトミックオブジェクトの以前の値を取得する
(関数テンプレート) |
|
Cドキュメント
for
atomic_fetch_xor
,
atomic_fetch_xor_explicit
|
|