|
Boost : |
From: Rob Stewart (stewart_at_[hidden])
Date: 2005-09-08 10:51:19
From: Thomas Witt <witt_at_[hidden]>
> David Abrahams wrote:
> > Thomas Witt <witt_at_[hidden]> writes:
> >>David Abrahams wrote:
> >
> > Something like begin(x), if I'm the author of a container type, seems
> > useful to me!
>
> Yes begin() but not boost_range_begin()
>
> > It might be used by anyone wanting to write composable generic
> > algorithms over sequences. One of the problems with the STL interface
> > is that composing the algorithms is more cumbersome than it should be.
>
> I am all for a range concept. I am at odds with the proposed solution
> for that.
I understand your point that exposing "boost_range_begin" as a
customization point is rather ugly and won't be a public domain
customization point. If it were named "range_begin," it could
well become public domain. The problem arises if there are
competing ideas for the interface or usage of such a name.
I like the idea that boost::begin() does the work. It's easy to
get in the habit of writing boost::begin() (or std::begin()
should it be standardized), whereas it is harder to be in the
habit of writing the using declaration plus an unqualified
begin(). Thus, the current solution, in the abstract at least,
seems like a good one.
How, then, do you propose to provide these points of
customization such that they help the library user avoid
mistakes, have reasonable chance to be used more widely than
Boost, but don't have the problems you attribute to
"boost_range_begin()?"
-- Rob Stewart stewart_at_[hidden] Software Engineer http://www.sig.com Susquehanna International Group, LLP using std::disclaimer;
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk