Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

US 16-045 7.6.19 [expr.ass] Revert de-deprecation of certain compound volatile assignments #488

Closed
wg21bot opened this issue Oct 30, 2022 · 4 comments · Fixed by cplusplus/draft#5989
Labels
Milestone

Comments

@wg21bot
Copy link
Collaborator

wg21bot commented Oct 30, 2022

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.

@wg21bot wg21bot added the EWG Evolution label Oct 31, 2022
@jfbastien
Copy link
Collaborator

De-deprecation paper: cplusplus/papers#1023

@jensmaurer jensmaurer changed the title US 7.6.19 [expr.ass] Revert de-deprecation of certain compound volatile assignments US 16-045 7.6.19 [expr.ass] Revert de-deprecation of certain compound volatile assignments Nov 3, 2022
@jensmaurer jensmaurer transferred this issue from another repository Nov 3, 2022
@jensmaurer jensmaurer added this to the CD C++23 milestone Nov 3, 2022
@erichkeane
Copy link

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.

@jfbastien jfbastien added CWG Core and removed EWG Evolution labels Nov 7, 2022
@jensmaurer
Copy link
Member

CWG2654

@jensmaurer
Copy link
Member

CWG 2022-11-08: Accepted with Modifications. Restored consistency by un-deprecating all volatile compound assignment operations; see CWG2654 for details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
4 participants