Title
Reference to wrong placeholder
Status
open
Section
13.5.4 [temp.constr.normal]
Submitter
Corentin Jabot

Created on 2025-04-02.00:00:00 last changed 6 months ago

Messages

Date: 2025-04-02.00:00:00

(From submission #696.)

Subclause 13.5.4 [temp.constr.normal] bullet 1.4.2 specifies:

... The normal form of CI is the result of substituting, in the normal form N of CE, appearances of C's template parameters in the parameter mappings of the atomic constraints in N with their respective arguments from C. ...

However, C is a concept-name and does not have any template parameters. CI, the concept-id, does, however.

Also, the treatment of default template arguments possibly used from C should be clarified.

Possible resolution:

Change in 13.5.4 [temp.constr.normal] paragraph 1.4.2:

For a concept-id C<A1 , A2 , . . . , An > termed CI:
  • If C names a dependent concept, the normal form of CI is a concept-dependent constraint whose concept-id is CI and whose parameter mapping is the identity mapping.
  • Otherwise, to form CE, any non-dependent concept template argument Ai is substituted into the constraint-expression of C. If any such substitution results in an invalid concept-id, the program is ill-formed; no diagnostic is required. The normal form of CI is the result of substituting, in the normal form N of CE, appearances of C's template parameters in the parameter mappings of the atomic constraints in N with their respective arguments from C CI; a default template argument of C's template parameters is used if there is no corresponding argument in CI. If any such substitution results in an invalid type or expression, the program is ill-formed; no diagnostic is required.
History
Date User Action Args
2025-04-02 00:00:00admincreate