
From: Thomas Witt <witt@acm.org>
David Abrahams wrote:
Thomas Witt <witt@acm.org> 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@sig.com Software Engineer http://www.sig.com Susquehanna International Group, LLP using std::disclaimer;