ho qualche codice che sto aggiornando a C++ 11 utilizzando gcc 4.7 (da 3,1)std :: multiset :: iterator = NULL non più valido?
Ho un multiset definito come un membro privato di una classe:
multiset <Object*, objectcomp> objects_;
Nel codice è un segmento che assomiglia a questo (p_q è una coppia di iteratori multiset, dispiace per quella linea brutto, non vedo l'ora di sostituire quello con auto, haha):
void Terrain::removeObject(Object* obj){
pair<multiset<Object*, objectcomp>::iterator, multiset<Object*, objectcomp>::iterator> p_q;
multiset<Object*, objectcomp>::iterator p,q;
q = NULL;
p_q = objects_.equal_range(obj);
for(p = p_q.first; p != p_q.second; p++){
if(*p == obj) {q=p; break;}
}
if(q!=NULL){
... do stuff based on q no longer being null
}
}
questo non sarà più a compilare. Non puoi più impostare gli iteratori su null? Qual è l'alternativa? (nullptr non funziona neanche)
Questo era ** mai ** valido. – ildjarn
oh, beh questo è imbarazzante, haha –