Subject: Re: [boost] [shared_ptr] A smarter smart pointer proposal for dynamic libraries
From: Emil Dotchevski (emildotchevski_at_[hidden])
Date: 2008-12-23 23:37:33
As far as I can tell, the only reason your reset() appears to work is
that it is inlined in the executable. The compiler doesn't guarantee
inlining, so in general it will crash anyway.
The solution to this problem is to inject the DLL's lifetime into any
shared_ptrs obtained from that DLL; that is, make the shared_ptr keep
the DLL afloat. This can be done easily (and non-intrusively) using
shared_ptr's aliasing constructor.
Reverge Studios, Inc.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk