cpp/experimental/ranges/concepts/Predicate

The concept specifies that  is a predicate that accepts arguments whose types and value categories are encoded by, i.e., it can be invoked with these arguments to produce a  result.

Note that requires the invocation to not modify either the callable object or the arguments and be equality-preserving.