From: Martin Bonner (martin.bonner_at_[hidden])
Date: 2005-12-07 12:11:51
From: Yuval Ronen [mailto:ronen_yuval_at_[hidden]]
Sent: 07 December 2005 16:20
Subject: Re: [boost] [shared_ptr] constructor accepting auto_ptr
> Peter Dimov wrote:
>> The reference adds a strong exception safety guarantee. If the
>> shared_ptr constructor fails, the source auto_ptr is left intact.
>> Pass by value would have already zeroed out the source.
>> If you want to achieve the equivalent of pass by value, you can use
>> an explicit .release().
>> This warning would actually be an error on a stricter compiler.
>> One happy day the compiler writers will bring us the rvalue
>> reference, the constructor will take auto_ptr &&, and all will be
>> well with the world. :-)
> Does that mean that on a stricter compiler, when passing a temporary
> auto_ptr, I *have* to use the '.release()' way, and *can't* get the
> strong exception guarantee?
No. You can always create a named temporary, and bind the reference to
> Thanks a lot to both of you Peter and Howard for your help.
> Unsubscribe & other changes:
-- Martin Bonner Martin.Bonner_at_[hidden] Pi Technology, Milton Hall, Ely Road, Milton, Cambridge, CB4 6WZ, ENGLAND Tel: +44 (0)1223 441434
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk