Errore di conteggio delle macro di Boost C ++
-
29-10-2019 - |
Domanda
Nella seguente parte di codice:
BOOST_FOREACH(std::pair<PID, bool> &itval, completedEs_) {
allCompleted &= it->second;
}
Ricevo questo errore:
errore: macro "BOOST_FOREACH" passata 3 argomenti, ma richiede solo 2
Sto passando solo 2 argomenti, cosa sta succedendo?
Soluzione
Il primo tipo viene analizzato come due argomenti poiché contiene una virgola. Come soluzione alternativa, puoi digitare il tipo:
typedef std::pair<PID, bool> PID_bool_pair;
BOOST_FOREACH( PID_bool_pair &itval, completedEs_) {
...
}
Altri suggerimenti
Non puoi farlo a causa di BOOST_FOREACH MACRO LIMITAZIONI, Riscrivilo come:
//...
typedef std::pair<PID, bool> mypair;
BOOST_FOREACH(mypair &itval, completedEs_) {
allCompleted &= it->second;
}
//...
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow