
28 Apr
2008
28 Apr
'08
4:32 p.m.
On Mon, 2008-04-28 at 12:11 -0400, Frank Mori Hess wrote:
On Monday 28 April 2008 09:27 am, Peter Dimov wrote:
The original assert catches this case, does it not?
Yes. The difference would be if cache was:
You are both right, my example was a bad one.
static map< string, weak_ptr< Object > > cache;
Then the current assert would allow it (and it would probably be safe at least in a single-threaded context), but BOOST_ASSERT(_shared_count.empty()) would abort.
The main point of BOOST_ASSERT(_shared_count.empty()) is to catch more cases than the current test. It breaks three test cases, so once again: Are these tests correct and by design or do they pass by accident? Regards, Daniel