Boost logo

Boost :

Subject: Re: [boost] boost::ptr_container: seems bug in erase_if
From: Thorsten Ottosen (nesotto_at_[hidden])
Date: 2009-02-13 13:47:58


Anton Ivanov skrev:
> Thorsten Ottosen ?????:
>> Anton Ivanov skrev:
>>> Hi!
>>>
>>> In ptr_sequence_adapter.hpp we have function:
>>>
>>> template< class Pred >
>>> void erase_if( iterator first, iterator last, Pred pred )
>>> {
>>> range_check(first,last);
>>> this->base().erase( std::remove_if( first.base(),
>>> last.base(),
>>>
>>> void_ptr_delete_if<Pred,value_type>(pred) ),
>>> this->base().end() );
>>> }
>>>
>>>
>>> If we call this function with second parameter not equal to
>>> this->base().end() then function remove not only elemets for wich pred
>>> return true, but also all alement from last.base() to the end of
>>> container (this->base().end()).
>> Right. It should be last.base().
>
> seems in 1.38.0 this bug is not fixed :(

Maybe I forgot to merge into the release. I'm sorry.

-Thorsten


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk