Boost logo

Boost Users :

Subject: Re: [Boost-users] [fusion] [range] range::erase vs. fusion::erase
From: Christopher Schmidt (mr.chr.schmidt_at_[hidden])
Date: 2011-09-17 03:16:03

Nathan Ridge <zeratul976_at_[hidden]> writes:

> Hi,
> I have an std::vector<S> and I use boost::erase() from Boost.Range on it.
> Now I changed S to be a Fusion sequence type, and as a result,
> boost::fusion::erase() is being found by ADL and called instead of
> boost::range::erase().
> Which of course gives all kinds of errors because std::vector is not a Fusion
> sequence.
> Is there a way to avoid this, besides qualifying every call to boost::erase()
> as boost::range::erase()? Basically I want to disable the finding of
> boost::fusion:: algorithms by ADL.
> Thanks,
> Nate

There is no easy fix. We'd need ADL barriers in fusion, which
themselves impose limitations. Have a look at

for more information.


Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at