Boost logo

Boost :

From: Douglas Paul Gregor (gregod_at_[hidden])
Date: 2003-01-23 11:53:37


On Thu, 23 Jan 2003, David Abrahams wrote:

> Douglas Paul Gregor <gregod_at_[hidden]> writes:
>
> > On Thu, 23 Jan 2003, David Abrahams wrote:
> >> AFAICT it
> >> doesn't solve the problem that Andrei was pointing at.
> >
> > You mean the front/pop_front issue?
>
> No, I mean the complexity-of-expression issue.

Hmmm, I don't see how that issue applies. STL users know how to write
function objects. It's not a gigantic leap to write function objects with
a templated function call operator (at least, it isn't if you've already
decided to play with template metaprogramming). The rest of the syntax is
inherited from STL. I don't see any extra complexity here. Granted, it
means pulling in a lot more code than Andrei's version, but as one who has
written that same bit of code approximately a billion times I'm ready for
a simple, familiar abstraction.

> > Just stick your third-party iterators into sequence<> and you're all set;
> > I'd expect that mpl::list, mpl::vector, etc. would just derive from
> > mpl::sequence to reduce the amount of typing in the common case.
>
> Maybe it would be better to define namespace-scope begin(), end(),
> et. al which can operate on STL and MPL sequences.

I have two concerns with that:
  1) begin and end are already class templates in MPL
  2) There isn't much precedent for begin(container) and end(container);
there is for container.begin() and container.end()

        Doug


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