std::atomic_ref<T>::exchange
From cppreference.com
< cpp | atomic | atomic ref
value_type exchange( value_type desired, std::memory_order order = |
(C++26 以降 constexpr) | |
参照されているオブジェクトの値を desired でアトミックに置き換えます。この操作は読み取り-変更-書き込み操作です。メモリへの影響は order の値に従います。
このオーバーロードは、std::is_const_v<T> が false である場合にのみ、オーバーロード解決に参加します。
[編集] パラメータ
| desired | - | 代入する値 |
| order | - | 強制するメモリ順序制約 |
[編集] 戻り値
呼び出し前の参照されていたオブジェクトの値。
[編集] 欠陥レポート
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| LWG 3508 (P3323R1) |
C++20 | exchange は const T に対して無意味でした。 |
非 const T のみを受け入れるように制約されました。 |