|
Boost : |
From: Jeremy Siek (jsiek_at_[hidden])
Date: 2000-12-29 21:31:00
The iterator requirements defined in the C++ Standard have a flaw. They
glom together two separate issues into a single set of concepts. The two
issues are iterator motion and dereference return type semantics. These
two issues are inherently orthogonal and therefore ought to be represented
by two separate sets of concepts. I've scetched out what I think these
two sets of concepts should be (see egroups files iterator_concepts.zip).
As a quick preview, here's the list of the concepts:
Concepts to handle return type semantics
ReadableIterator
WritableIterator
LvalueIterator
Concepts to handle iterator motion
SinglePassIterator
ForwardIterator
BidirectinalIterator
RandomAccessIterator
Cheers,
Jeremy
----------------------------------------------------------------------
Jeremy Siek www: http://www.lsc.nd.edu/~jsiek/
Ph.D. Candidate email: jsiek_at_[hidden]
Univ. of Notre Dame work phone: (219) 631-3906
----------------------------------------------------------------------
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk