$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Thorsten Ottosen (thorsten.ottosen_at_[hidden])
Date: 2007-01-02 06:02:08
Joshua Moore-Oliva wrote:
> I was doing what I do regularly with std::maps...  a 
> m_plsts.erase( m_plsts.begin(), m_plsts.end() ); on a boost::ptr_map.  It 
> failed with an assertion error...  Digging around, it came from 
> ptr_container/detail/associative_ptr_container.hpp on line 117.  It appears 
> that every single erase (including that done by a key) has an assert for the 
> list not being empty!
> 
> Why is this the case?  As far as I understand, it is valid to attempt to 
> remove a key that does not exist.  It follows that the same behaviour would 
> occur whether the map was empty or not.  Attempting to remove an element from 
> an empty map should not result in an abort.
> 
> If I'm unaware of some C++ convention I would love to be informed, however 
> this definitely screams bug to me.
I think you're right.
Thomas, is it ok to fix this in the 1.34 branch?
-Thorsten