[temp.arg.template] p4 Saying PP is an id-expression has a wrong assumption
Nobody has claimed this yet.
- Dominant language
- TeX
- Stars
- 221
- Forks
- 813
- Avg merge
- 16h 4m
- Merged PRs (30d)
- 36
Description
The second bullet in [temp.arg.template] p4 says
If PP declares a template parameter pack, then AA is the pack expansion PP... ([temp.variadic]); otherwise, AA is the id-expression PP.
The id-expression implies that PP can only be a non-type template parameter since whose declarator-id is an id-expression. The name of the type template parameter is either typedef-name or template-name, as per [temp.param] p3
A type-parameter whose identifier does not follow an ellipsis defines its identifier to be a typedef-name (if declared without template) or template-name (if declared with template) in the scope of the template declaration.
Maybe, we change the last sentence to
otherwise, AA is the identifier naming PP.
is better?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at [temp.arg.template] p4 and compare the wording with [temp.param] p3, especially the distinction between type and non-type template parameters. Check whether replacing “id-expression PP” with “the identifier naming PP” accurately describes both cases; done means the standard wording is technically correct and unambiguous.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100