|
Boost : |
From: David Abrahams (dave_at_[hidden])
Date: 2008-03-12 21:37:03
on Sun Feb 24 2008, "Marco Costalba" <mcostalba-AT-gmail.com> wrote:
> On Sun, Feb 24, 2008 at 9:34 PM, Brian Ravnsgaard Riis
> <brian_at_[hidden]> wrote:
>>
>> I don't deal in raw pointers in application code though (well, if I can
>> avoid it), so I added methods to the
>> dispatcher template to return shared_ptrs instead. get_shared_by_key was
>> the name I hacked up.
>>
>
> Hi Brian,
>
> thanks for your words.
>
> Actually the choice to mimic a standard operator new is mainly due to
>
> - Keep it simple and with well known behaviour, as a toy should be
>
> - Do not impose a choice on a particular smart pointer, but let the
> user wrap the returned pointer in his/her preferred one. Of course the
> smart pointer class could be passed in as a template parameter, but
> this complicates the implementation and so goes against one of my main
> goals with this factory.
You should return std::auto_ptr, which -- unlike shared_ptr -- doesn't
impose any permanent choice but is also safe.
-- Dave Abrahams Boost Consulting http://boost-consulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk