ループ変数の名前と同じ名前の変数の名前を使用すると、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))
{
}
}
問題の原因は理解していますが、これを修正することは可能でしょうか?
それを回避する方法は考えられません(仮想関数などは必要ありません)。