Здравствуйте, Аноним, Вы писали:
А>Есть кусок кода:
А>А> for( std::vector< STATUS >::iterator it = m.begin() ; it != m.end() ; )
А> {
А> if( it->state == StatusOk )
А> {
А> it = m.erase( it );
А> }
А> else
А> {
А> ++it;
А> }
А> }
А>
А>Точно понимаю, что это оптимизируется в нормальный вызов remove_if. Как лучше сделать? А с бустом?
Не знаю, проще ли это:
m.erase( remove_if( m.begin(), m.end(),
boost::bind(
std::equal_to< тип, где StatusOk >(),
boost::bind( &STATUS::state, _1 ), StatusOk )
),
m.end() );