在下面的代码中:
BOOST_FOREACH(std::pair<PID, bool> &itval, completedEs_) {
allCompleted &= it->second;
}
我收到了这个错误:
错误:宏“BOOST_FOREACH”通过3 参数,但只需要2
我只传递了2个参数,发生了什么?
答案 0 :(得分:7)
第一种类型被解析为两个参数,因为它包含一个逗号。 作为一种解决方法,您可以键入以下类型:
typedef std::pair<PID, bool> PID_bool_pair;
BOOST_FOREACH( PID_bool_pair &itval, completedEs_) {
...
}
答案 1 :(得分:2)
由于BOOST_FOREACH宏限制,你不能这样做,重写如下:
//...
typedef std::pair<PID, bool> mypair;
BOOST_FOREACH(mypair &itval, completedEs_) {
allCompleted &= it->second;
}
//...