Unless otherwise specified,
function objects passed into parallel algorithms as objects of type
Predicate,
BinaryPredicate,
Compare,
UnaryOperation,
BinaryOperation,
BinaryOperation1,
BinaryOperation2,
BinaryDivideOp, 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
.