From Jason Turner

[iterator.concept.iterator]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmps9v14c_m/{from.md → to.md} +25 -0
tmp/tmps9v14c_m/{from.md → to.md} RENAMED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #### Concept <a id="iterator.concept.iterator">[[iterator.concept.iterator]]</a>
2
+
3
+ The `input_or_output_iterator` concept forms the basis of the iterator
4
+ concept taxonomy; every iterator models `input_or_output_iterator`. This
5
+ concept specifies operations for dereferencing and incrementing an
6
+ iterator. Most algorithms will require additional operations to compare
7
+ iterators with sentinels [[iterator.concept.sentinel]], to read
8
+ [[iterator.concept.input]] or write [[iterator.concept.output]] values,
9
+ or to provide a richer set of iterator movements (
10
+ [[iterator.concept.forward]], [[iterator.concept.bidir]],
11
+ [[iterator.concept.random.access]]).
12
+
13
+ ``` cpp
14
+ template<class I>
15
+ concept input_or_output_iterator =
16
+ requires(I i) {
17
+ { *i } -> can-reference;
18
+ } &&
19
+ weakly_incrementable<I>;
20
+ ```
21
+
22
+ [*Note 1*: Unlike the *Cpp17Iterator* requirements, the
23
+ `input_or_output_iterator` concept does not require
24
+ copyability. — *end note*]
25
+