The requires expression is an unnamed concept right?
It's an expression of type bool. requires (T x) { x + x; }
Can be read as "For an object of type T named x, the constraint x + x is satisfied?"
In the requires-clause
1 2 3
template<typename T>
requires constraint
T add(T a, T b) { return a + b; }
constraint is some constant expression which says whether the constraints are satisfied. The predicate requires (T x) { x + x; }
is that constant expression.