Closed wg21bot closed 1 year ago
De-deprecation paper: https://github.com/cplusplus/papers/issues/1023
EWG approves of RE-deprecating volatile compound bitwise assignments, and therefore reverts P2327R1.
IF ACCEPT: ALL compound volatile assignments deprecated (C++20) IF REJECT: BITWISE compound volatile assignments NOT deprecated, rest are.
SF | F | N | A | SA |
---|---|---|---|---|
2 | 9 | 3 | 8 | 4 |
Result: NOT Consensus
In order to preserve consistency, UN-Deprecate the rest of the volatile compound assignment operators. | SF | F | N | A | SA |
---|---|---|---|---|---|
6 | 13 | 5 | 1 | 0 |
Result: Consensus.
CWG2654
CWG 2022-11-08: Accepted with Modifications. Restored consistency by un-deprecating all volatile compound assignment operations; see CWG2654 for details.
Many functions of volatile were deprecated in C++20. In C++23, volatile compound operations were de-deprecated by P2327. The rationale for this de-deprecation is lacking.
Deprecation is not removal. P2327 in C++23 is stopping the change that we began with C++20, mere moments ago if counting by adoption time. It primarily argued that it’s an inconvenient change, and that some of the audience would just not cooperate with WG21’s indicated direction, so WG21 should compromise the technical consistency of the Standard so they could continue to not cooperate.
The paper did not bring new information on the technical merits of the case, and net the result of applying it was a technically dissonant Standard specification — a strictly worse specification than C++20. Bitwise compound operations are not special for any technical reason, they are only special because making them special shields some from deprecation diagnostics.
Proposed change:
Revert P2327, which de-deprecated volatile compound operations.