-
Notifications
You must be signed in to change notification settings - Fork 782
Open
Description
The
constinit
specifier shall be applied only to a declaration of a variable with static or thread storage duration.
This is broken wording because [basic.pre] says:
A variable is introduced by the declaration of a reference other than a non-static data member or of an object.
The variable's name, if any, denotes the reference or object.
What the former paragraph says is thus:
The
constinit
specifier shall be applied only to a declaration of a declaration of an object or reference other than a non-static data member or of an object, with static or thread storage duration.
Inlining the definition gives us "declaration of a declaration" which is either meaningless or recursive.
Suggested Fix
Extend [basic.pre] p6 as follows:
A *variable* is introduced by the declaration of a reference
other than a non-static data member or of an object.
The variable's name, if any, denotes the reference or object.
+Such a declaration is called *variable declaration*.
Then, in the entire document:
-declaration of a variable
+variable declaration
Metadata
Metadata
Assignees
Labels
No labels