tmp/tmp4vs336bx/{from.md → to.md}
RENAMED
|
@@ -16,14 +16,16 @@ uses that algorithm makes of `==` and `!=`.
|
|
| 16 |
[*Example 1*: The call `find(a,b,x)` is defined only if the value of
|
| 17 |
`a` has the property *p* defined as follows: `b` has property *p* and a
|
| 18 |
value `i` has property *p* if (`*i==x`) or if (`*i!=x` and `++i` has
|
| 19 |
property *p*). — *end example*]
|
| 20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 21 |
[*Note 1*: For input iterators, `a == b` does not imply `++a == ++b`.
|
| 22 |
(Equality does not guarantee the substitution property or referential
|
| 23 |
-
transparency.)
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
istreams as the source of the input data through the `istream_iterator`
|
| 28 |
-
class template. — *end note*]
|
| 29 |
|
|
|
|
| 16 |
[*Example 1*: The call `find(a,b,x)` is defined only if the value of
|
| 17 |
`a` has the property *p* defined as follows: `b` has property *p* and a
|
| 18 |
value `i` has property *p* if (`*i==x`) or if (`*i!=x` and `++i` has
|
| 19 |
property *p*). — *end example*]
|
| 20 |
|
| 21 |
+
*Recommended practice:* The implementation of an algorithm on input
|
| 22 |
+
iterators should never attempt to pass through the same iterator twice;
|
| 23 |
+
such an algorithm should be a single pass algorithm.
|
| 24 |
+
|
| 25 |
[*Note 1*: For input iterators, `a == b` does not imply `++a == ++b`.
|
| 26 |
(Equality does not guarantee the substitution property or referential
|
| 27 |
+
transparency.) Value type `T` is not required to be a
|
| 28 |
+
*Cpp17CopyAssignable* type ([[cpp17.copyassignable]]). Such an
|
| 29 |
+
algorithm can be used with istreams as the source of the input data
|
| 30 |
+
through the `istream_iterator` class template. — *end note*]
|
|
|
|
|
|
|
| 31 |
|