
17 Sep
2011
17 Sep
'11
7:16 a.m.
Nathan Ridge
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 https://svn.boost.org/trac/boost/ticket/4028 for more information. Christopher