[expr.prim.req.simple] (original) (raw)

7 Expressions [expr]

7.5 Primary expressions [expr.prim]

7.5.8 Requires expressions [expr.prim.req]

7.5.8.2 Simple requirements [expr.prim.req.simple]

simple-requirement:
expression ;

1

#

A simple-requirement asserts the validity of an expression.

The expression is an unevaluated operand.

[Note 1:

The enclosing requires-expression will evaluate to falseif substitution of template arguments into the expression fails.

— _end note_]

[Example 1: template<typename T> concept C = requires (T a, T b) { a + b; // C is true if a + b is a valid expression }; — _end example_]

2

#

A requirement that starts with a requires token is never interpreted as a simple-requirement.

[Note 2:

This simplifies distinguishing between a simple-requirementand a nested-requirement.

— _end note_]