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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy