• sergeyu@chromium.org's avatar
    Revert 113722 - Add Pass(), which implements move semantics, to scoped_ptr,... · 3e6d120b
    sergeyu@chromium.org authored
    Revert 113722 - Add Pass(), which implements move semantics, to scoped_ptr, scoped_array, and scoped_ptr_malloc.
    
    This modification to the scopers implements the "moveable but not copyable" semantics that were introduced in C++11's unique_ptr<>.
    
    With this, is now possible to use scopers as an argument type or a return type.  This signifies, in the type system, transfer of ownership into a function or out of a function respectively.  Calling, or returning such a function MUST use the temporary resulting from the scoper's Pass() function. You CANNOT just pass the scoper by copy as there is still no copy constructor or assignment operator; trying to do so will yield a compilation error.
    
    This distinction makes it possible to avoid the implicit ownership transfer issues of auto_ptr, but still allow us to have compiler enforced ownership transfer.
    
    Also adds a Passed() helper that allows using a scoper with Bind().
    
    BUG=96118
    TEST=new unittests
    
    Review URL: http://codereview.chromium.org/8774032
    
    TBR=ajwong@chromium.org
    Review URL: http://codereview.chromium.org/8890060
    
    git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113738 0039d316-1c4b-4281-b951-d872f2087c98
    3e6d120b
bind_internal.h.pump 14.9 KB