Skip to content

Commit 66e6af6

Browse files
committed
[expr.prim.req] Fix uses of 'unevaluated operand'
1 parent 02f9bb5 commit 66e6af6

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

source/expressions.tex

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2694,8 +2694,6 @@
26942694
\pnum
26952695
A \grammarterm{requires-expression} is a prvalue of type \tcode{bool}
26962696
whose value is described below.
2697-
Expressions appearing within a \grammarterm{requirement-body}
2698-
are unevaluated operands\iref{term.unevaluated.operand}.
26992697

27002698
\pnum
27012699
\begin{example}
@@ -2779,6 +2777,7 @@
27792777
\pnum
27802778
A \grammarterm{simple-requirement} asserts
27812779
the validity of an \grammarterm{expression}.
2780+
The \grammarterm{expression} is an unevaluated operand\iref{expr.context}.
27822781
\begin{note}
27832782
The enclosing \grammarterm{requires-expression} will evaluate to \keyword{false}
27842783
if substitution of template arguments into the \grammarterm{expression} fails.
@@ -2848,7 +2847,9 @@
28482847

28492848
\pnum
28502849
A \grammarterm{compound-requirement} asserts properties
2851-
of the \grammarterm{expression} $E$. Substitution
2850+
of the \grammarterm{expression} $E$.
2851+
The \grammarterm{expression} is an unevaluated operand\iref{expr.context}.
2852+
Substitution
28522853
of template arguments (if any) and verification of
28532854
semantic properties proceed in the following order:
28542855

@@ -2957,8 +2958,9 @@
29572958
\end{example}
29582959

29592960
\pnum
2960-
A local parameter shall only appear as an unevaluated operand\iref{term.unevaluated.operand}
2961-
within the \grammarterm{constraint-expression}.
2961+
Within the \grammarterm{constraint-expression},
2962+
an \grammarterm{unqualified-id} naming a local parameter shall not be
2963+
potentially evaluated\iref{basic.def.odr}.
29622964
\begin{example}
29632965
\begin{codeblock}
29642966
template<typename T> concept C = requires (T a) {

0 commit comments

Comments
 (0)