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]
Because different parallel architectures might require idiosyncratic
parameters for efficient execution, implementations
can provide additional execution policies to those described in this
standard as extensions.