180*_*ION 8

Boost - 它weak_ptr有一些很好的功能,使你可以安全使用,如果你也在使用shared_ptr.您保留weak_ptrshared_ptr生命周期管理的实例的引用.当您需要使用底层实例时,shared_ptr使用shared_ptr类的构造函数或lock方法将其转换为实例.如果删除了基础实例,则操作将失败.使用的线程安全与shared_ptr类相同:

shared_ptr<int> p(new int(5));
weak_ptr<int> q(p);

// some time later

if(shared_ptr<int> r = q.lock())
{
    // use *r
}
Run Code Online (Sandbox Code Playgroud)


ste*_*anv 6

"boost :: weak_ptr"与"boost :: shared_ptr"(在tr1中也可用)的效果非常好