25 Algorithms library [algorithms]

25.2 Parallel algorithms [algorithms.parallel]

25.2.1 Terms and definitions [algorithms.parallel.defns]

A parallel algorithm is a function template listed in this standard with a template parameter named ExecutionPolicy.

Parallel algorithms access objects indirectly accessible via their arguments by invoking the following functions:

  • All operations of the categories of the iterators that the algorithm is instantiated with.

  • Operations on those sequence elements that are required by its specification.

  • User-provided function objects to be applied during the execution of the algorithm, if required by the specification.

  • Operations on those function objects required by the specification. [ Note: See [algorithms.general]. — end note ]

These functions are herein called element access functions. [ Example: The sort function may invoke the following element access functions:

  • Operations of the random-access iterator of the actual template argument (as per [random.access.iterators]), as implied by the name of the template parameter RandomAccessIterator.

  • The swap function on the elements of the sequence (as per the preconditions specified in [sort]).

  • The user-provided Compare function object.

 — end example ]