Boost logo

Boost Users :

From: Arkadiy Vertleyb (vertleyb_at_[hidden])
Date: 2005-03-02 17:58:53


"Eric Niebler" <eric_at_[hidden]> wrote

> Jonathan Turkanis wrote:
> > Arkadiy Vertleyb wrote:
> >
> >>In this particular case the Boost.Range needs to be fixed to avoid
> >>unqualified calls, IMO.
> >
> > I believe Thorsten deliberately wanted to allow unqualified calls.
>
> Yes, Boost.Range is designed that way. It is an extensible design -- you
> can range-ify your own type by defining your own begin() and end() and
> letting ADL find them. So it seems there is no simple work-around for
> GCC's bizarre ADL rules in this case. We'll need to think of something
else.

Well, then I hate to say this, but IMHO this is a problem in the Boost.Range
design :-(

I am not really that familiar with this library, but I assume it has to do
with containers, correct? Assume the following usage (pseudocode)

Range(std::vector<MyNamespace::SomeTemplate<boost::multi-index<boost::mpl::v
ector> > > )

Now ADL will use std, boost, MyNamespace, boost::multi_index, and boost::mpl
to find Range. There is absolutely no guarantee that it won't find
conflicting functions :-(

Regards,
Arkadiy


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net