Boost logo

Boost Users :

Subject: Re: [Boost-users] [phoenix] ambiguity between std::begin/end and phoenix::begin/end due to ADL
From: Joel de Guzman (joel_at_[hidden])
Date: 2011-12-28 00:08:34


On 12/16/2011 5:44 PM, Nathan Ridge wrote:
>
> Hello,
>
> I am running into a problem where an unqualified call to begin()
> on a range type whose template parameters include a Boost.Phoenix
> type (for examle filtered_range<Pred, R> where Pred is a phoenix
> function) is ambiguous because, in addition to the intended
> std::begin, phoenix::begin is being found by ADL.
>
> What can be done about this? There exists precedent for placing
> boost::xxx::begin/end functions in ADL barrier namespaces because
> C++11 encourages unqualified calls to begin/end (specifically,
> this was done for boost::range::begin/end). Should the same thing
> be done for Phoenix?

Yep. Heller seems to be on vacation now. It would be good to
have a trac ticket for this, to be sure we won't forget.

Regards,

-- 
Joel de Guzman
http://www.boostpro.com
http://boost-spirit.com

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