$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Beman Dawes (bdawes_at_[hidden])
Date: 2002-01-17 11:18:43
At 09:59 AM 1/17/2002, Andrei Alexandrescu wrote:
>> A smart shared_ptr can do the right thing on b.reset(), but on
>b.release()
>> the user will be left with a Base* and the undefined behavior is not
far
>> away.
>
>I agree that release() is dangerous. It is also required if you want to
use
>smart pointers with any COM (and, I suspect, CORBA) projects. The typical
>scenario (shown by Rob), is when you need to return a pointer in an out
>parameter. In that case you need to tell your smart pointer you want to
>take ownership of the pointee away from the smart pointer.
Is this related to a specific policy instance? Can release() only be
exposed in that particular policy instance? Thus shared_ptr and
scoped_ptr, for example, wouldn't have release(), but an Ownership policy
related to COM objects would expose release().
--Beman