std::shared_ptr<T>::swap
From cppreference.com
                    
                                        
                    < cpp | memory | shared ptr
                    
                                                            
                    | void swap( shared_ptr& r ) noexcept; | (since C++11) | |
Exchanges the contents of *this and r
Parameters
| r | - | smart pointer to exchange the contents with | 
Return value
(none)