|
Boost : |
Subject: Re: [boost] [smart_ptr] shared_ptr<T> T destructor required even if adeleter function is provided
From: Peter Dimov (pdimov_at_[hidden])
Date: 2008-09-28 13:10:51
vicente.botet:
> Hello,
>
> I have compiled the example Preventing delete px.get()and every thing is
> OK until we use the reset function because shared_ptr<X> request that the
> destructor of X must be public even if a deleter function is provided. I'm
> wondering if this is a BUG on the smart pointer library
...
> int main () {
> shared_ptr<X> ptr = X::create();
> ptr.reset(X::create().get());
> return 0;
> }
shared_ptr is doing the right thing. The line
ptr.reset(X::create().get());
is a bug in your code (taking ownership of a pointer already managed by
shared_ptr), and it is correct for it to not compile.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk