在下面的一段代码中:
BOOST_FOREACH(std::pair<PID, bool> &itval, completedEs_) {
allCompleted &= it->second;
}
我收到此错误:
错误:宏“BOOST_FOREACH”传递了 3 个参数,但只需要 2 个
我只传递了 2 个参数,这是怎么回事?
在下面的一段代码中:
BOOST_FOREACH(std::pair<PID, bool> &itval, completedEs_) {
allCompleted &= it->second;
}
我收到此错误:
错误:宏“BOOST_FOREACH”传递了 3 个参数,但只需要 2 个
我只传递了 2 个参数,这是怎么回事?
第一种类型被解析为两个参数,因为它包含一个逗号。作为一种解决方法,您可以 typedef 类型:
typedef std::pair<PID, bool> PID_bool_pair;
BOOST_FOREACH( PID_bool_pair &itval, completedEs_) {
...
}
由于 BOOST_FOREACH 宏限制,您不能这样做,请将其重写为:
//...
typedef std::pair<PID, bool> mypair;
BOOST_FOREACH(mypair &itval, completedEs_) {
allCompleted &= it->second;
}
//...