cpp/memory/shared ptr/~shared ptr

If owns an object and it is the last  owning it, the object is destroyed through the owned deleter.

After the destruction, the smart pointers that shared ownership with, if any, will report a use_count that is one less than its previous value.