std::list<int> List;
std::list<int>::iterator iter;
for( iter= List.begin(); iter!= List.end(); )
{
if( WillDelete( *iter) ) {
iter= List.erase( iter);
}
else {
++iter;
}
}