|
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