$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [Boost-users] scoped_ptr::release (again)
From: Yang Zhang (yanghatespam_at_[hidden])
Date: 2009-02-20 22:53:34
Howard Hinnant wrote:
> On Feb 20, 2009, at 1:27 PM, Yang Zhang wrote:
> 
>> From http://www.boost.org/doc/libs/1_36_0/libs/smart_ptr/scoped_ptr.htm:
>>
>> "If scoped_ptr had a release() member, it would become possible to 
>> transfer ownership of the held pointer, weakening its role as a way of 
>> limiting resource lifetime to a given context. Use std::auto_ptr where 
>> transfer of ownership is required. (supplied by Dave Abrahams)"
>>
>> But there already is a way to escape the scope, via swap().
>>
>> Would it make more sense to just provide release() and have users 
>> specify const if they want?  (const scoped_ptr/scoped_array would 
>> effectively disallow swapping/releasing.)
> 
> <opinion>
> http://home.roadrunner.com/~hinnant/unique_ptr03.html
> 
> (search for "scoped_ptr")
> </opinion>
Nice.  Thanks for the pointer (pun intended).  I take it boost does not 
have unique_ptr, correct?  I checked in Boost.TR1 and found nothing.  I 
did find boost::interprocess::unique_pointer, but that appears to be 
different.
I did some digging, and I did find mention of this file on the gcc 
mailing lists - I take it this implementation is being included in GNU 
libstdc++?
Lastly, I didn't see any rvalue references in this file.  I was under 
the impression that the implementation of unique_ptr leverages rvalue 
references.  Is this why there are const_casts present in the code?
-- Yang Zhang http://www.mit.edu/~y_z/