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
Avoid "requirement" as a grammar non-terminal #1671
Comments
I agree with the general sentiment, but "enforced properties of the req-stmt" sounds contrived. Oh, and "req-stmt" is not really a statement, right? |
The worst conflict is probably [structure.requirements]. |
Yes, req-stmt is not really a statement. It does act very similarly to a static_assert-declaration though. So we could have requirement-declaration and "declared requirements". |
The grammar term requirement is used only in a very limited scope, and in the C++ wording (unlike C) we don't intend to have an implied correlation between grammar term foo and the English word "foo" used elsewhere in the text. As such, and because requirement is the most natural term for an element in a |
The lack of the implied correlation is precisely what the second half of this issue points to. For example, see the unitalicized instances of "requirements" in 8.1.7 [expr.prim.req] paragraph 6. |
P0734R0 contains requirement as a grammar non-terminal.
The Working Draft prior to integrating P0734R0 already uses "requirement" with another meaning.
In this case, it would presumably be less disruptive to change P0734R0 to avoid "requirement" as the name of a grammar non-terminal. req-stmt may be appropriate. Additionally, P0734R0 uses "requirement" to also refer to the semantics that the requirement non-terminal applies. These uses may be modified to refer instead to the "enforced properties of the req-stmt".
The text was updated successfully, but these errors were encountered: