$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Peter Dimov (pdimov_at_[hidden])
Date: 2008-03-20 11:25:57
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?