Boost logo

Boost :

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
> there.
>
> http://boost.org/libs/range/doc/range.html
>

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
documentation?

-- 
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