diff --git a/MultiPassInputIterator.html b/MultiPassInputIterator.html index 99ee2fc..cb76b45 100644 --- a/MultiPassInputIterator.html +++ b/MultiPassInputIterator.html @@ -21,21 +21,21 @@
I think that introducing MultiPassInputIterator isn't the right -solution. Do you also want to define MultiPassBidirectionnalIterator -and MultiPassRandomAccessIterator ? I don't, definitly. It only +
I think that introducing Multi-Pass Input Iterator isn't the right +solution. Do you also want to define Multi-Pass Bidirectionnal Iterator +and Multi-Pass Random Access Iterator ? I don't, definitly. It only confuses the issue. The problem lies into the existing hierarchy of iterators, which mixes movabillity, modifiabillity and lvalue-ness, and these are clearly independant. -
The terms Forward, Bidirectionnal and RandomAccess are about +
The terms Forward, Bidirectionnal and Random Access are about movabillity and shouldn't be used to mean anything else. In a completly orthogonal way, iterators can be immutable, mutable, or neither. Lvalueness of iterators is also orthogonal with -immutabillity. With these clean concepts, your MultiPassInputIterator -is just called a ForwardIterator. +immutabillity. With these clean concepts, your Multi-Pass Input Iterator +is just called a Forward Iterator.
Other translations are:
-std::ForwardIterator -> ForwardIterator & LvalueIterator
-std::BidirectionnalIterator -> BidirectionnalIterator & LvalueIterator
-std::RandomAccessIterator -> RandomAccessIterator & LvalueIterator
+std::Forward Iterator -> ForwardIterator & Lvalue Iterator
+std::Bidirectionnal Iterator -> Bidirectionnal Iterator & Lvalue Iterator
+std::Random Access Iterator -> Random Access Iterator & Lvalue Iterator
Note that in practice the only operation not allowed on my -ForwardIterator which is allowed on std::ForwardIterator is +Forward Iterator which is allowed on std::Forward Iterator is &*it. I think that &* is rarely needed in generic code.
@@ -75,9 +75,9 @@ reply by Jeremy Siek:
The above analysis by Valentin is right on. Of course, there is
the problem with backward compatibility. The current STL implementations
-are based on the old definition of ForwardIterator. The right course
-of action is to get ForwardIterator, etc. changed in the C++ standard.
-Once that is done we can drop MultiPassInputIterator.
+are based on the old definition of Forward Iterator. The right course
+of action is to get Forward Iterator, etc. changed in the C++ standard.
+Once that is done we can drop Multi-Pass Input Iterator.