From Jason Turner

[alg.partitions]

Diff to HTML by rtfpessoa

tmp/tmp8od_bh0f/{from.md → to.md} RENAMED
@@ -110,19 +110,18 @@ range \[`i`, `last`), E(`*j`) is `false`. Returns:
110
  - `i` for the overloads in namespace `std`.
111
  - `{i, last}` for the overloads in namespace `ranges`.
112
 
113
  *Complexity:* Let N = `last - first`:
114
 
115
- - For the overloads with no `ExecutionPolicy`, at most N log N swaps,
116
  but only 𝑂(N) swaps if there is enough extra memory. Exactly N
117
  applications of the predicate and projection.
118
  - For the overload with an `ExecutionPolicy`, 𝑂(N log N) swaps and 𝑂(N)
119
  applications of the predicate.
120
 
121
  ``` cpp
122
- template<class InputIterator, class OutputIterator1,
123
- class OutputIterator2, class Predicate>
124
  constexpr pair<OutputIterator1, OutputIterator2>
125
  partition_copy(InputIterator first, InputIterator last,
126
  OutputIterator1 out_true, OutputIterator2 out_false, Predicate pred);
127
  template<class ExecutionPolicy, class ForwardIterator, class ForwardIterator1,
128
  class ForwardIterator2, class Predicate>
@@ -153,11 +152,11 @@ Let `proj` be `identity{}` for the overloads with no parameter named
153
  `*first` is writable [[iterator.requirements.general]] to `out_true` and
154
  `out_false`.
155
 
156
  *Preconditions:* The input range and output ranges do not overlap.
157
 
158
- [*Note 1*: For the overload with an `ExecutionPolicy`, there may be a
159
  performance cost if `first`’s value type does not meet the
160
  *Cpp17CopyConstructible* requirements. — *end note*]
161
 
162
  *Effects:* For each iterator `i` in \[`first`, `last`), copies `*i` to
163
  the output range beginning with `out_true` if E(`*i`) is `true`, or to
 
110
  - `i` for the overloads in namespace `std`.
111
  - `{i, last}` for the overloads in namespace `ranges`.
112
 
113
  *Complexity:* Let N = `last - first`:
114
 
115
+ - For the overloads with no `ExecutionPolicy`, at most N log N swaps,
116
  but only 𝑂(N) swaps if there is enough extra memory. Exactly N
117
  applications of the predicate and projection.
118
  - For the overload with an `ExecutionPolicy`, 𝑂(N log N) swaps and 𝑂(N)
119
  applications of the predicate.
120
 
121
  ``` cpp
122
+ template<class InputIterator, class OutputIterator1, class OutputIterator2, class Predicate>
 
123
  constexpr pair<OutputIterator1, OutputIterator2>
124
  partition_copy(InputIterator first, InputIterator last,
125
  OutputIterator1 out_true, OutputIterator2 out_false, Predicate pred);
126
  template<class ExecutionPolicy, class ForwardIterator, class ForwardIterator1,
127
  class ForwardIterator2, class Predicate>
 
152
  `*first` is writable [[iterator.requirements.general]] to `out_true` and
153
  `out_false`.
154
 
155
  *Preconditions:* The input range and output ranges do not overlap.
156
 
157
+ [*Note 1*: For the overload with an `ExecutionPolicy`, there might be a
158
  performance cost if `first`’s value type does not meet the
159
  *Cpp17CopyConstructible* requirements. — *end note*]
160
 
161
  *Effects:* For each iterator `i` in \[`first`, `last`), copies `*i` to
162
  the output range beginning with `out_true` if E(`*i`) is `true`, or to