Title
`{can_}substitute` specification is (still) ill-formed
Status
new
Section
[meta.reflection.substitute]
Submitter
S. B. Tam

Created on 2026-05-05.00:00:00 last changed 5 days ago

Messages

Date: 2026-05-09.14:08:52

Proposed resolution:

This wording is relative to N5032.

  1. Modify [meta.reflection.substitute] as indicated:

    -1- Let TARG-SPLICE(x) be:

    1. (1.1) — `template [: x :]`a template-argument that denotes what x represents if `is_template(x)` is `true`, otherwise

    2. (1.2) — `typename [: x :]` if `is_type(x)` is `true`, otherwise

    3. (1.3) — `([: x :])`.

Date: 2026-05-05.00:00:00

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-05-09 14:08:52adminsetmessages: + msg16291
2026-05-05 00:00:00admincreate