An
object of an execution policy type indicates the kinds of parallelism allowed
in the execution of an algorithm and expresses the consequent requirements on
the element access functions.
[Example 1: usingnamespace std;
vector<int> v =/* ... */;
// standard sequential sort
sort(v.begin(), v.end());
// explicitly sequential sort
sort(execution::seq, v.begin(), v.end());
// permitting parallel execution
sort(execution::par, v.begin(), v.end());
// permitting vectorization as well
sort(execution::par_unseq, v.begin(), v.end());
— end example]
Implementations can provide additional execution policies
to those described in this standard as extensions
to address parallel architectures that require idiosyncratic
parameters for efficient execution.