|
Boost : |
Subject: Re: [boost] boost::ptr_container: seems bug in erase_if
From: Anton Ivanov (ai_at_[hidden])
Date: 2009-02-13 07:43:54
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 :(
-- Yours sincerely, Anton Ivanov (ai_at_[hidden]) Unix Project Manager Doctor Web, Ltd.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk