Created on 2026-05-05.00:00:00 last changed 5 days ago
Proposed resolution:
This wording is relative to N5054.
Modify [meta.reflection.substitute] as indicated:
-1- Let TARG-SPLICE(x) be
:
(1.1) —`template [: x :]`a template-argument that denotes what x represents if is_template(x) || is_type(x) is `true`, otherwise
(1.2) — `typename [: x :]` if `is_type(x)` is `true`, otherwise
(1.3) —`([: x :])`.
[ 2026-07-31 LWG telecon; Status changed: New → Ready. ]
[ 2026-07-30; Tim provides new wording ]
[ 2026-05-29; Reflector poll. ]
Set priority to 2 after reflector poll.
We should merge 1.1 and 1.2.
This wording is relative to N5032.
Modify [meta.reflection.substitute] as indicated:
-1- Let TARG-SPLICE(x) be:
(1.1) —
`template [: x :]`a template-argument that denotes what x represents if `is_template(x)` is `true`, otherwise(1.2) — `typename [: x :]` if `is_type(x)` is `true`, otherwise
(1.3) — `([: x :])`.
The use of `template [: x :]` (introduced in LWG 4316) is incorrect: `template [: x :]` is a splice-expression (which can only designate a function template or variable template), and an unparenthesized splice-expression is not allowed as a template-argument per [temp.names]/6.
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2026-07-31 16:46:35 | admin | set | messages: + msg16544 |
| 2026-07-31 16:46:35 | admin | set | status: new -> ready |
| 2026-07-31 08:45:09 | admin | set | messages: + msg16535 |
| 2026-05-29 08:44:59 | admin | set | messages: + msg16339 |
| 2026-05-09 14:08:52 | admin | set | messages: + msg16291 |
| 2026-05-05 00:00:00 | admin | create | |