Section: 16.3.2.3 [structure.requirements] Status: New Submitter: Tim Song Opened: 2021-05-23 Last modified: 2021-05-26
Priority: 3
View all other issues in [structure.requirements].
View all issues with New status.
Discussion:
16.3.2.3 [structure.requirements] p9 says:
A declaration may explicitly impose requirements through its associated constraints (13.5.3 [temp.constr.decl]). When the associated constraints refer to a concept (13.7.9 [temp.concept]), the semantic constraints specified for that concept are additionally imposed on the use of the declaration.
There are at least two issues with this wording:
First, "associated constraints" is a Core term that refers to the constraints on a declaration after normalization, at which point direct uses of concepts have been decomposed into the constituent atomic constraints and are no longer visible.
Second, "refers to" is too vague. Does !C<T>
"refer to"
C
and impose its semantic constraints? Does C1<T> || C2<T>
"refer to" both C1
and C2
and therefore impose the semantic
constraints of both?
[2021-05-26; Reflector poll]
Set priority to 3 after reflector poll.
Proposed resolution: