You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
P2996 currently parses the following syntax as an expression:
constexprauto R = ^[:S:]::inner;
whenever S is dependent on a template parameter. In the case where [:S:]::inner names a type, one could instead write:
constexprauto R = ^typename [:S:]::inner;
but since P2996R2 removed the namespace [:R:] syntax, if [:S:]::inner names a nested namespace, then one instead must write:
usingnamespaceAlias= [:S:];
constexprauto R = ^Alias::inner;
Since it is known that the form ^[:S:]::inner will be parsed as an expression of type std::meta::info, it should be feasible to represent it as a reflection having kind e.g., RK_dependent_qualified_id, and to rebuild it as a reflection holding either a namespace, type, template, or expression during tree transform. It would be good to demonstrate the feasibility of this transformation with working code.
The text was updated successfully, but these errors were encountered:
P2996 currently parses the following syntax as an expression:
whenever
S
is dependent on a template parameter. In the case where[:S:]::inner
names a type, one could instead write:but since P2996R2 removed the
namespace [:R:]
syntax, if[:S:]::inner
names a nested namespace, then one instead must write:Since it is known that the form
^[:S:]::inner
will be parsed as an expression of typestd::meta::info
, it should be feasible to represent it as a reflection having kind e.g.,RK_dependent_qualified_id
, and to rebuild it as a reflection holding either a namespace, type, template, or expression during tree transform. It would be good to demonstrate the feasibility of this transformation with working code.The text was updated successfully, but these errors were encountered: