From: Eric Niebler (eric_at_[hidden])
Date: 2005-09-01 08:09:00
Pavol Droba wrote:
> It might a problem with documentation, but it seems that you have misunderstood
> the basic idea of the Range library.
There is a section in the documentation entitled "Extending the Library"
that doesn't describe how to extend the library. I'd say that's a pretty
serious problem in the documentation.
> Core of the range library is not in the code, rather in concepts that are defined
In that case, the Range library and the concepts it defines are
fundamentally broken. It seems to be requiring that everybody at all
times make qualified calls to boost::begin() and boost::end().
Therefore, in order to extend the library, users must put *their*
begin() and end() functions in the boost namespace. This is distasteful,
but I'll let that slide.
The more serious problem is the way this interacts with 2-phase lookup.
Since it is a qualified call, any call to boost::begin() from within a
template will get resolved during the first lookup phase. If a user's
overload has not been seen yet, it will not get considered.
So, is Boost.Range broken, or is this another problem with the
-- Eric Niebler Boost Consulting www.boost-consulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk