std::shared_ptr<T>::~shared_ptr
From cppreference.com
                    
                                        
                    < cpp | memory | shared ptr
                    
                                                            
                    |   ~shared_ptr();  | 
||
If *this owns an object and it is the last shared_ptr owning it, the object is destroyed through the owned deleter. 
After the destruction, the smart pointers that shared ownership with *this, if any, will report a use_count() that is one less than its previous value.
Notes
Unlike std::unique_ptr, the deleter of std::shared_ptr is invoked even if the managed pointer is null.
Example
| This section is incomplete Reason: no example  | 
See also
  destroys a weak_ptr (public member function of std::weak_ptr<T>)  |