tmp/tmp08rzatfx/{from.md → to.md}
RENAMED
|
@@ -30,11 +30,11 @@ and let E be
|
|
| 30 |
|
| 31 |
- `bool(pred(*(i - 1), *i))` for the overloads in namespace `std`;
|
| 32 |
- `bool(invoke(comp, invoke(proj, *(i - 1)), invoke(proj, *i)))` for the
|
| 33 |
overloads in namespace `ranges`.
|
| 34 |
|
| 35 |
-
*Preconditions:* For the overloads in
|
| 36 |
equivalence relation and the type of `*first` meets the
|
| 37 |
*Cpp17MoveAssignable* requirements ([[cpp17.moveassignable]]).
|
| 38 |
|
| 39 |
*Effects:* For a nonempty range, eliminates all but the first element
|
| 40 |
from every consecutive group of equivalent elements referred to by the
|
|
@@ -105,19 +105,19 @@ parameter `pred`, and let E be
|
|
| 105 |
- The ranges \[`first`, `last`) and \[`result`, `result+(last-first)`)
|
| 106 |
do not overlap.
|
| 107 |
- For the overloads in namespace `std`:
|
| 108 |
- The comparison function is an equivalence relation.
|
| 109 |
- For the overloads with no `ExecutionPolicy`, let `T` be the value
|
| 110 |
-
type of `InputIterator`. If `InputIterator`
|
| 111 |
-
|
| 112 |
-
requirements for `T`. Otherwise, if `OutputIterator`
|
| 113 |
-
*Cpp17ForwardIterator* requirements and its value type is
|
| 114 |
-
as `T`, then `T` meets the *Cpp17CopyAssignable*
|
| 115 |
([[cpp17.copyassignable]]) requirements. Otherwise, `T` meets both
|
| 116 |
the *Cpp17CopyConstructible* ([[cpp17.copyconstructible]]) and
|
| 117 |
*Cpp17CopyAssignable* requirements. \[*Note 1*: For the overloads
|
| 118 |
-
with an `ExecutionPolicy`, there
|
| 119 |
value type of `ForwardIterator1` does not meet both the
|
| 120 |
*Cpp17CopyConstructible* and *Cpp17CopyAssignable*
|
| 121 |
requirements. — *end note*]
|
| 122 |
|
| 123 |
*Effects:* Copies only the first element from every consecutive group of
|
|
|
|
| 30 |
|
| 31 |
- `bool(pred(*(i - 1), *i))` for the overloads in namespace `std`;
|
| 32 |
- `bool(invoke(comp, invoke(proj, *(i - 1)), invoke(proj, *i)))` for the
|
| 33 |
overloads in namespace `ranges`.
|
| 34 |
|
| 35 |
+
*Preconditions:* For the overloads in namespace `std`, `pred` is an
|
| 36 |
equivalence relation and the type of `*first` meets the
|
| 37 |
*Cpp17MoveAssignable* requirements ([[cpp17.moveassignable]]).
|
| 38 |
|
| 39 |
*Effects:* For a nonempty range, eliminates all but the first element
|
| 40 |
from every consecutive group of equivalent elements referred to by the
|
|
|
|
| 105 |
- The ranges \[`first`, `last`) and \[`result`, `result+(last-first)`)
|
| 106 |
do not overlap.
|
| 107 |
- For the overloads in namespace `std`:
|
| 108 |
- The comparison function is an equivalence relation.
|
| 109 |
- For the overloads with no `ExecutionPolicy`, let `T` be the value
|
| 110 |
+
type of `InputIterator`. If `InputIterator` models
|
| 111 |
+
`forward_iterator` [[iterator.concept.forward]], then there are no
|
| 112 |
+
additional requirements for `T`. Otherwise, if `OutputIterator`
|
| 113 |
+
meets the *Cpp17ForwardIterator* requirements and its value type is
|
| 114 |
+
the same as `T`, then `T` meets the *Cpp17CopyAssignable*
|
| 115 |
([[cpp17.copyassignable]]) requirements. Otherwise, `T` meets both
|
| 116 |
the *Cpp17CopyConstructible* ([[cpp17.copyconstructible]]) and
|
| 117 |
*Cpp17CopyAssignable* requirements. \[*Note 1*: For the overloads
|
| 118 |
+
with an `ExecutionPolicy`, there might be a performance cost if the
|
| 119 |
value type of `ForwardIterator1` does not meet both the
|
| 120 |
*Cpp17CopyConstructible* and *Cpp17CopyAssignable*
|
| 121 |
requirements. — *end note*]
|
| 122 |
|
| 123 |
*Effects:* Copies only the first element from every consecutive group of
|