4
Input: *i is convertible to T
5
Forward: *i is T& (or const T&)
6
Random Access: i[n] is convertible to T
7
---------------------------------------
18
Bidirectional Traversal
19
Random Access Traversal
22
Output = Writable, Incremental
23
Input = Readable, Single Pass
24
Forward (const) = Readale Lvalue, Forward Traversal
25
Forward (mutable) = Writable Lvalue, Forward Traversal
26
BiDirectional, Random Acces, ...
31
A Range is a concept similar to the STL Container concept. However, a Range
33
* own the elements that can be accessed through it,
34
* have copy semantics,
35
Because of the second requirement, a Range object must be passed by reference
38
Since ranges are characterized by a specific underlying iterator type, we get
39
a type of range for each type of iterator. Hence we can speak of the following