std::atomic_ref<T>::fetch_xor
Min standard notice:
Atomically replaces the current value of the referenced object with the result of bitwise XOR of the value and arg. This operation is a read-modify-write operation. Memory is affected according to the value of order.
# Declarations
Provided only when T is an integral type other than cv bool
value_type fetch_xor( value_type arg,
std::memory_order order =
std::memory_order_seq_cst ) const noexcept;
(since C++20)
# Parameters
arg: the other argument of bitwise XORorder: memory order constraints to enforce
# Return value
The value of the referenced object, immediately preceding the effects of this function.
# Defect reports
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 3508(P3323R1) | C++20 | fetch_xor was meaningless for const T | constrained to accept only non-const T |