Title
Reflection on type aliases
Status
ready
Section
7.6.2.10 [expr.reflect]
Submitter
Jakub Jelinek

Created on 2025-10-29.00:00:00 last changed 1 month ago

Messages

Date: 2025-11-04.23:05:32

Proposed resolution (approved by CWG 2025-11-04):

Change in 7.6.2.10 [expr.reflect] bullet 6.2 as follows:

A reflect-expression R of the form ^^type-id represents an entity determined as follows:
  • If the type-id designates a placeholder type (9.2.9.7.1 [dcl.spec.auto.general]), R is ill-formed.
  • Otherwise, if the type-id names a type alias that is a specialization of is of the form nested-name-specifieropt templateopt simple-template-id and whose terminal name is a template-name that names an alias template (13.7.8 [temp.alias]), R represents that the type alias so named.
  • Otherwise, R represents the type denoted by the type-id.
Date: 2025-11-04.23:05:32

(From submission #789.)

It is not clear in 7.6.2.10 [expr.reflect] paragraph 6 whether the phrasing "names a type alias" also applies for type aliases appearing somewhere in a type-id, e.g. ^^const my_typedef_name.

History
Date User Action Args
2025-11-07 22:16:49adminsetstatus: tentatively ready -> ready
2025-11-04 23:05:32adminsetmessages: + msg8207
2025-11-04 23:05:32adminsetstatus: open -> tentatively ready
2025-10-29 00:00:00admincreate