the std::remove_if does not really remove the iterator