In this code snippet Update() returns a boolean, if it returns false I would like to delete the element from the vector.
However, this produces a run-time error of debug assertion failed. The expression is "vector iterator not incrementable".
The code:
for(auto iter = someVector.begin(); iter != someVector.end(); ++iter){
if(!iter->get()->Update()) iter = someVector.erase(iter);
}
I have tried subtracting from the iterator as follows too:
for(auto iter = particles.begin(); iter != particles.end(); ++iter){
if(!iter->get()->Update()) iter = --(particles.erase(iter));
}
...but this results in "vector iterator not decrementable".
How can I make my code works as intended; so that the vector element is deleted when the Update() function returns false?