Skip to content

[temp.constr.normal] Reference to the wrong entity. #696

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

Open
cor3ntin opened this issue Apr 2, 2025 · 1 comment
Open

[temp.constr.normal] Reference to the wrong entity. #696

cor3ntin opened this issue Apr 2, 2025 · 1 comment

Comments

@cor3ntin
Copy link

cor3ntin commented Apr 2, 2025

Reference (section label): [temp.constr.normal]

This section reads

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-id C<A1, A2,... An> termed CI.

Therefore, this makes little sense. C has no template argument. This blunder was introduced by https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p2841r7.pdf

Suggested resolution:

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 CI.

(Notice the added I)

@hubert-reinterpretcast
Copy link
Collaborator

The proposed resolution is better than the status quo; however, I think we want to also solve the problem of what happens with the default template arguments of C (if used). The wording prior to P2841 clearly omitted (probably by mistake) any treatment of default template argument usage. The new wording seems a bit ambiguous.

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

No branches or pull requests

2 participants