unique_ptr is normal for the owner. If the original pointers to this object are still issued and stored elsewhere (and therefore they are technically separable), this may confuse readers of your code.
shared_ptr , . , , B , _z . , shared_ptr weak_ptr B. ... Boost.Signals2.
, weak_ptr , .