From Jason Turner

[input.iterators]

Diff to HTML by rtfpessoa

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.) Algorithms on input iterators should never attempt to
24
- pass through the same iterator twice. They should be *single pass*
25
- algorithms. Value type `T` is not required to be a *Cpp17CopyAssignable*
26
- type ([[cpp17.copyassignable]]). These algorithms can be used with
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