|
Boost : |
From: Thomas Holenstein (tholenst_at_[hidden])
Date: 2000-09-14 02:47:29
Aleksey Gurtovoy writes:
> John R. Bandela (<jbandela_at_[hidden]>) wrote:
> > I have updated the Token Iterator and Tokenizer concepts. It is
> > located in BoostUpdate3.zip in TokenIterator directory
> [snip]
>
> I've tried to generalize some things a little, and that resulted in a
> Layered Iterator concept -
Yes, I like that. Note however that the VTL (see posting from gary)
does a similar thing. Don't stop there, however. I have a bunch of
other iterator layers that might be interesting, but they are not
compatible with your refinement 'Input Iterator or Forward Iterator'.
- Pointwise unary operation: Takes an iterator range and a unary op
and returns an iterator range. (You can negate a iterator range
that way). This is an example where the concept stays:
Input Iterator -> Input Iterator,
Forward Iterator -> Forward Iterator,
Bidirectional Iterator -> Bidirectional Iterator
Random Access -> Random Access
- Binary op on two iterator ranges (e.g. pointwise multiplication)
- Concatenation of two iterator ranges.
- Creating a sorted iterator range out of two sorted iterator ranges.
(Example: iterator pair 1: 'a', 'c', 'q', 'z', pair 2: 'b', 'd'
-> 'a', 'b', 'c', 'd', 'q', 'z')
- Reversal of an iterator range... oops, already exists in STL :-)
We should carefully study this example. They did NOT use ranges,
and I personally never missed them! So probably this concept does
NOT need ranges either. You just pass both iterators alone.
Note however that many of these ideas seem to be covered by VTL. So
there is generally a question what we should adopt.
Thomas
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk