Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2004-09-27 07:01:55


Vladimir Prus <ghost_at_[hidden]> writes:

> JOAQUIN LOPEZ MU?Z wrote:
>
>> Hi again Volodya, after thinking this over I'm
>> not so sure the mpl::deref thing has anything to do
>> with your problem --still, it'd be good to know
>> whether it has some impact, if you can do the test
>> locally.
>
> As I've mentioned in the other email, the change did not fix the problem.
>
>> I'm afraid we're in Alexsey's hands to
>> solve this out.
>
> Seems so.
>
>> BTW, boost/bind/arg.hpp is deceivingly
>> simple I can't figure out how its inclusion can
>> make a difference.
>
> Well, I can tell one third of the story. The reverse_iter_fold.hpp has this:
>
> namespace boost { namespace mpl {
>
> template<
> typename BOOST_MPL_AUX_NA_PARAM(Sequence)
> , typename BOOST_MPL_AUX_NA_PARAM(State)
> , typename BOOST_MPL_AUX_NA_PARAM(BackwardOp)
> , typename ForwardOp = arg<1>
>
> According to the error message, gcc associates 'arg<1>' with boost::arg
> (from bind/arg.hpp), while most likely mpl::arg<1> was meant. Two remaining
> questions are
> - why gcc does that.

GCC applies "ADL" to almost everything. It's ridiculous.

> - why changing the above to mpl::arg<1> does not fix anything?

That part I can't fathom.

-- 
Dave Abrahams
Boost Consulting
http://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