BOOST_FOREACH сломан; это вообще возможно исправить?

Если вы используете имя переменной, имя которой совпадает с именем переменной цикла, 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))
{
}
}

Я понимаю причину проблемы, но мне интересно, это вообще можно исправить?
Я не могу придумать, как обойти это (это не требует виртуальных функций и тому подобное).

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …