
Thorsten Ottosen wrote:
"Peter Dimov" <pdimov@mmltd.net> wrote in message news:00aa01c43369$1959e180$1d00a8c0@pdimov2...
Thorsten Ottosen wrote:
Let's assume this library is to be called Range Traits with RangeConcept, ExternalRangeConcept and, ExternalReversibleRangeConcept, can John/Mathew then find a reasonable name for their concept:
crange<T> r = make_range( vector ); while( r ) { ++r; *r; }
could they call their stuff TraversableRangeConcept or EnumerableRangeConcept or IteratorRangeConcept?
Why invent a new concept? This is an Iterator that is ConvertibleToBool.
because I assume it will also have member functions that makes it a Range, ie, begin(), end(), empty(), size(). So it merges ranges with iterators.
Range is begin(), end(); Iterator is ++ and *, and ConvertibleToBool is if( x ). A concept only specifies the minimal requirements. If we had to invent new concepts for every combination, we wouldn't be able to get anything else done, combinatorial explosion and all. ;-)