
Frank Mori Hess wrote:
On Wednesday 19 March 2008 17:41 pm, Peter Dimov wrote:
What is the purpose of owned()?
It indicates whether the object has had ownership passed to a shared_ptr yet. I don't have a strong justification on why it needs to be public, maybe it would be useful for debugging/diagnostic purposes.
It's better to omit the owned() accessor unless/until we have a use case for it.
Attached is a test for the new functionality.
Looks good. In: { boost::weak_ptr<X> early_weak_px; { boost::shared_ptr<X> early_px; X x( 0, &early_px ); boost::weak_ptr<X> early_weak_px = early_px; early_px.reset(); BOOST_TEST( early_weak_px.expired() == false ); BOOST_TEST( X::instances == 1 ); } BOOST_TEST( early_weak_px.expired() ); } you probably didn't want to redeclare early_weak_px inside the {} block though. As a minor stylistic issue, I'd prefer !expired() instead of expired() == false. You might want to add tests for ownership sharing, !( early_px < px ) && !( px < early_px ). One final question, in: BOOST_TEST( early_px.use_count() > 0 ); what does use_count() return? 2? Do we want to test against 2 directly, or are we to leave the initial use count unspecified? Do you have SVN write access?