actors.erase(
std::remove_if( actors.begin(), actors.end(), []( gh::Actor*a )->bool {
if (!a || a->state == DELETE_STATE) {
delete a;
return true;
} else {
return false;
}
}),
actors.end()
);
As an aside, you almost certainly do not want to use std::list
. Use std::vector
-- the cases where std::list
outperforms std::vector
are exceedingly narrow.