Boost logo

Boost :

From: Brian McNamara (lorgon_at_[hidden])
Date: 2003-11-19 05:04:49


On Wed, Nov 19, 2003 at 08:08:57PM +1100, Matthew Wilson wrote:
> > Now that I think about it, a range concept does not even need to be so
> complicated.
> > As explained above (in the original message):
> > - a range is a pair of iterators
> > - it has typedefs for value_type,pointer,reference
> > (no const_pointer,no const_reference)
> > - it's got begin() and end()
> > - it's got an operator bool() that returns true if the
> > range is non-empty.
>
> I'm still of the opinion that all a range needs is ++(), bool() and *().
> Having said that, begin() and end() are starting to look attractive, from a
> practical pov. Hopefully others can shed light on where in the continuum
> between our ideas they lie. (Perhaps they'll lie outside it! :)

You may be interested to read

   http://groups.google.com/groups?q=brian+mcnamara+range+group:comp.lang.c%2B%2B.moderated+group:comp.lang.c%2B%2B.moderated&hl=en&lr=&ie=UTF-8&group=comp.lang.c%2B%2B.moderated&selm=8gm2i6%24gbt%241%40news-int.gatech.edu&rnum=5

and other messages in-that-thread/of-mine from that time period.

In FC++, our "list" type is your kind of "range", only it is spelled
differently:

   range fcpp::list
   ----- ----------
   ++i l = tail(l)
   bool(i) bool(l) or !null(l)
   *i head(l)

Brian's non-interesting observation of the day: There seems to be lots
of concept-refactoring and library-interface-redesign going on here at
Boost. Would that we all had design omniscience! We would have saved
ourselves a lot of time! :)

-- 
-Brian McNamara (lorgon_at_[hidden])

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk