std::shared_ptr alias constructor

    struct X
    {
        int a;
    };
    shared_ptr<X> px(new X);
    shared_ptr<int> pi(px, &px->a); 

    shared_ptr<X> sp1(new X);
    shared_ptr<X> sp2(sp1, new X); // ERROR: delete for this X will never be called

    sp1.reset(); // deletes first X; makes sp1 empty
    shared_ptr<X> sp3(sp1, new X); // use_count()==0, but get()!=nullptr
原文地址:https://www.cnblogs.com/wangpei0522/p/12997394.html