Если вы используете имя переменной, имя которой совпадает с именем переменной цикла, BOOST_FOREACH
запутывается:
#include <boost/foreach.hpp>
#include <vector>
struct Test { };
std::vector<int> test(Test) { return std::vector<int>(); }
Test c;
int main()
{
BOOST_FOREACH (int c, test(c))
{
}
}
Я понимаю причину проблемы, но мне интересно, это вообще можно исправить?
Я не могу придумать, как обойти это (это не требует виртуальных функций и тому подобное).
Задача ещё не решена.
Других решений пока нет …