|
Boost : |
From: David Abrahams (dave_at_[hidden])
Date: 2004-08-27 09:22:51
Bronek Kozicki <brok_at_[hidden]> writes:
> David Abrahams wrote:
>> Bronek Kozicki <brok_at_[hidden]> writes:
>>>Howard Hinnant wrote:
>>>>template<class T, class D = typename detail::default_delete<T>::type>
>>>>class move_ptr;
>>>
>>>why in type? This could be stored in trampoline function, stored
>>>together with pointer, something like this
>>>http://b.kozicki.pl/cpp/ext_auto_ptr_090.zip
>> It's a space-vs-time tradeoff.
>
> right, but do you really believe that deleter should belong to type?
Sometimes, probably.
> Tradeoff is really small (3 pointers more, no extra allocations), and
> it gives *runtime* choice of deleter. Thus with it you can write
> "source" function (the one returning smart pointer), and caller of
> this function does not need to know anything about deleter. Heck, you
> can even safely pass pointers and other things between dynamic
> libraries, each using its own copy of statically linked CRT.
Believe me, I'm aware of the advantages of having a deleter member.
-- Dave Abrahams Boost Consulting http://www.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