From: Daniel Frey (d.frey_at_[hidden])
Date: 2008-04-28 12:32:14


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