Мне было интересно, что будет лучшим способом сделать что-то подобное ...
// Iterating through a list
if ( foo ) {
RemoveBar( it );
}
void RemoveBar( std::list< Type >::iterator it ) {
it = listName.erase( it );
...// Other stuff related to cleaning up the removed iterator
}
Я не думаю, что проход по значению будет работать здесь. Очевидно, что я хочу остаться в правильной позиции итератора, когда я вызываю RemoveBar. Является ли передача по ссылке лучшей альтернативой?