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 2694
2694
\pnum
2695
2695
A \grammarterm {requires-expression} is a prvalue of type \tcode {bool}
2696
2696
whose value is described below.
2697
- Expressions appearing within a \grammarterm {requirement-body}
2698
- are unevaluated operands\iref {term.unevaluated.operand }.
2699
2697
2700
2698
\pnum
2701
2699
\begin {example }
2779
2777
\pnum
2780
2778
A \grammarterm {simple-requirement} asserts
2781
2779
the validity of an \grammarterm {expression}.
2780
+ The \grammarterm {expression} is an unevaluated operand\iref {expr.context }.
2782
2781
\begin {note }
2783
2782
The enclosing \grammarterm {requires-expression} will evaluate to \keyword {false}
2784
2783
if substitution of template arguments into the \grammarterm {expression} fails.
2848
2847
2849
2848
\pnum
2850
2849
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
2852
2853
of template arguments (if any) and verification of
2853
2854
semantic properties proceed in the following order:
2854
2855
2957
2958
\end {example }
2958
2959
2959
2960
\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 }.
2962
2964
\begin {example }
2963
2965
\begin {codeblock }
2964
2966
template<typename T> concept C = requires (T a) {
You can’t perform that action at this time.
0 commit comments