* reintroduce the swap_and_pop vs in_place_pop split for perf reasons * rollback to a model with two iterators on virtual functions * even faster range-erase/clear
* reintroduce the swap_and_pop vs in_place_pop split for perf reasons * rollback to a model with two iterators on virtual functions * even faster range-erase/clear