#include <map> #include <boost/foreach.hpp> void f() { std::map<int, int> m; BOOST_FOREACH(std::map<int, int>::value_type const& iter, m) { } return 0; }
これ VC8 でコンパイルが通りません……。エラーが大量に出るのですが、その前に BOOST_FOREACH の引数が多すぎると言う警告(C4002)が出るのでカンマがいけないのでしょうか。
#include <map> #include <boost/foreach.hpp> void f() { typedef std::map<int, int> map_t; map_t m; BOOST_FOREACH(map_t::value_type const& iter, m) { } }
上記のようにすると通ります。自分が何か間違えたのかとしばらく悩んでしまいました。