Skip to content

Commit ccbca41

Browse files
committed
LWG4316 {can_}substitute specification is ill-formed
1 parent eb4a802 commit ccbca41

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

source/meta.tex

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6217,6 +6217,19 @@
62176217

62186218
\rSec2[meta.reflection.substitute]{Reflection substitution}
62196219

6220+
\pnum
6221+
Let \tcode{\placeholder{TARG-SPLICE}(x)} be:
6222+
\begin{itemize}
6223+
\item
6224+
\tcode{template [: x :]} if \tcode{is_template(x)} is \tcode{true}, otherwise
6225+
6226+
\item
6227+
\tcode{typename [: x :]} if \tcode{is_type(x)} is \tcode{true}, otherwise
6228+
6229+
\item
6230+
\tcode{([: x :])}.
6231+
\end{itemize}
6232+
62206233
\begin{itemdecl}
62216234
template<class R>
62226235
concept @\deflibconcept{reflection_range}@ =
@@ -6237,7 +6250,7 @@
62376250

62386251
\pnum
62396252
\returns
6240-
\tcode{true} if \tcode{Z<[:Args:]...>} is a valid \grammarterm{template-id}\iref{temp.names}
6253+
\tcode{true} if \tcode{Z<\placeholder{TARG-SPLICE}(Args)...>} is a valid \grammarterm{template-id}\iref{temp.names}
62416254
that does not name a function
62426255
whose type contains an undeduced placeholder type.
62436256
Otherwise, \tcode{false}.
@@ -6251,7 +6264,7 @@
62516264

62526265
\pnum
62536266
\begin{note}
6254-
If forming \tcode{Z<[:Args:]...>} leads to a failure
6267+
If forming \tcode{Z<\placeholder{TARG-SPLICE}(Args)...>} leads to a failure
62556268
outside of the immediate context,
62566269
the program is ill-formed.
62576270
\end{note}
@@ -6272,7 +6285,7 @@
62726285

62736286
\pnum
62746287
\returns
6275-
\tcode{\reflexpr{Z<[:Args:]...>}}.
6288+
\tcode{\reflexpr{Z<\placeholder{TARG-SPLICE}(Args)...>}}.
62766289

62776290
\pnum
62786291
\throws
@@ -6281,7 +6294,7 @@
62816294

62826295
\pnum
62836296
\begin{note}
6284-
If forming \tcode{Z<[:Args:]...>} leads to a failure outside of the immediate context,
6297+
If forming \tcode{Z<\placeholder{TARG-SPLICE}(Args)...>} leads to a failure outside of the immediate context,
62856298
the program is ill-formed.
62866299
\end{note}
62876300

0 commit comments

Comments
 (0)