Unless otherwise specified,
invocable objects passed into parallel algorithms as objects of a type
denoted by a template parameter named
Predicate,
BinaryPredicate,
Compare,
UnaryOperation,
BinaryOperation,
BinaryOperation1,
BinaryOperation2,
BinaryDivideOp, or
constrained by a concept that subsumes
regular_invocable
and the operators used by the analogous overloads to these parallel algorithms
that are formed by an invocation
with the specified default predicate or operation (where applicable)
shall not directly or indirectly modify objects via their arguments,
nor shall they rely on the identity of the provided objects
.