Boost logo

Boost :

From: Michael B. Edwin Rickert (panda_at_[hidden])
Date: 2005-08-03 15:13:54


Andy Thomas-Cramer wrote:
> I have a weak_ptr that might be empty. If not empty, I'd like to make a
> smart pointer from it.
>
> But the code below throws in the shared_ptr constructor, and I don't see
> how to test whether a weak_ptr is empty.
>
> boost::weak_ptr<int> wp;
> boost::shared_ptr<int> sp(wp);
> if ( sp.get() ) {
> ...
> }

The documentation (http://boost.org/libs/smart_ptr/weak_ptr.htm) seems
to show a few options. The most similar to your situation would be:

boost::weak_ptr< int > wp;
boost::shared_ptr< int > sp = wp.lock();
if ( sp.get() ) {
     ...
}


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk