tmp/tmpj9_a87dv/{from.md → to.md}
RENAMED
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
### `ExecutionPolicy` algorithm overloads <a id="algorithms.parallel.overloads">[[algorithms.parallel.overloads]]</a>
|
| 2 |
+
|
| 3 |
+
Parallel algorithms are algorithm overloads. Each parallel algorithm
|
| 4 |
+
overload has an additional template type parameter named
|
| 5 |
+
`ExecutionPolicy`, which is the first template parameter. Additionally,
|
| 6 |
+
each parallel algorithm overload has an additional function parameter of
|
| 7 |
+
type `ExecutionPolicy&&`, which is the first function parameter.
|
| 8 |
+
|
| 9 |
+
[*Note 1*: Not all algorithms have parallel algorithm
|
| 10 |
+
overloads. — *end note*]
|
| 11 |
+
|
| 12 |
+
Unless otherwise specified, the semantics of `ExecutionPolicy` algorithm
|
| 13 |
+
overloads are identical to their overloads without.
|
| 14 |
+
|
| 15 |
+
Unless otherwise specified, the complexity requirements of
|
| 16 |
+
`ExecutionPolicy` algorithm overloads are relaxed from the complexity
|
| 17 |
+
requirements of the overloads without as follows: when the guarantee
|
| 18 |
+
says “at most *expr*” or “exactly *expr*” and does not specify the
|
| 19 |
+
number of assignments or swaps, and *expr* is not already expressed with
|
| 20 |
+
𝑂() notation, the complexity of the algorithm shall be
|
| 21 |
+
𝑂(\placeholder{expr}).
|
| 22 |
+
|
| 23 |
+
Parallel algorithms shall not participate in overload resolution unless
|
| 24 |
+
`is_execution_policy_v<decay_t<ExecutionPolicy>>` is `true`.
|
| 25 |
+
|