Unless otherwise specified, function objects passed into parallel algorithms as
objects of type
Predicate,
BinaryPredicate,
Compare,
UnaryOperation,
BinaryOperation,
BinaryOperation1,
BinaryOperation2, and the operators used by the analogous overloads to
these parallel algorithms that could be formed by the 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
.