File tree Expand file tree Collapse file tree 1 file changed +7
-5
lines changed Expand file tree Collapse file tree 1 file changed +7
-5
lines changed Original file line number Diff line number Diff line change 2621
2621
\pnum
2622
2622
A \grammarterm {requires-expression} is a prvalue of type \tcode {bool}
2623
2623
whose value is described below.
2624
- Expressions appearing within a \grammarterm {requirement-body}
2625
- are unevaluated operands\iref {expr.prop }.
2626
2624
2627
2625
\pnum
2628
2626
\begin {example }
2706
2704
\pnum
2707
2705
A \grammarterm {simple-requirement} asserts
2708
2706
the validity of an \grammarterm {expression}.
2707
+ The \grammarterm {expression} is an unevaluated operand\iref {expr.context }.
2709
2708
\begin {note }
2710
2709
The enclosing \grammarterm {requires-expression} will evaluate to \keyword {false}
2711
2710
if substitution of template arguments into the \grammarterm {expression} fails.
2775
2774
2776
2775
\pnum
2777
2776
A \grammarterm {compound-requirement} asserts properties
2778
- of the \grammarterm {expression} $ E$ . Substitution
2777
+ of the \grammarterm {expression} $ E$ .
2778
+ The \grammarterm {expression} is an unevaluated operand\iref {expr.context }.
2779
+ Substitution
2779
2780
of template arguments (if any) and verification of
2780
2781
semantic properties proceed in the following order:
2781
2782
2884
2885
\end {example }
2885
2886
2886
2887
\pnum
2887
- A local parameter shall only appear as an unevaluated operand\iref {expr.prop }
2888
- within the \grammarterm {constraint-expression}.
2888
+ Within the \grammarterm {constraint-expression},
2889
+ an \grammarterm {unqualified-id} naming a local parameter shall not be
2890
+ potentially evaluated\iref {basic.def.odr }.
2889
2891
\begin {example }
2890
2892
\begin {codeblock }
2891
2893
template<typename T> concept C = requires (T a) {
You can’t perform that action at this time.
0 commit comments