id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 6357,Resolve ambiguity for unqualified call to begin/end,Thomas Heller,Thomas Heller,"On 12/16/2011 10:44 AM, 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 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? > > Here is a minimal example that reproduces the problem: {{{ #include #include #include using std::begin; {{{ int main() { using boost::phoenix::arg_names::arg1; using boost::adaptors::filtered; int v[5]; const auto& f = v | filtered(arg1< 0); begin(f); } }}}",Bugs,closed,To Be Determined,phoenix,Boost 1.48.0,Problem,fixed,,