Czy istnieje sposób DRY this (bez makr)?DRY up kod, który różni się tylko w stałej
void clear_tp_vec(vector<const Tk*>& tps){
for(auto it=tps.begin();it!=tps.end();++it){
const ValT* vp=dynamic_cast<const ValT*>(*it);
if(vp!=NULL)
delete vp;
}
tps.clear();
};
void clear_tp_vec(vector<Tk*>& tps){
for(auto it=tps.begin();it!=tps.end();++it){
ValT* vp=dynamic_cast<ValT*>(*it);
if(vp!=NULL)
delete vp;
}
tps.clear();
};
Jedyne drugi różni się przeciążenia jest const kwalifikator (jej brak). Komentowanie którejkolwiek wersji łamie mój kod.
Zdefiniuj jako szablon. – cup
Pętla for może być krótsza: for (auto it = tps.begin(); it! = Tps.end(); ++ it) delete dynamic_cast (* it); –
user1764961
Dzięki. Nie wiedziałem, że mogę usunąć nullptr. – PSkocik