std::swap(std::tuple)
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   template< class... Types > void swap( tuple<Types...>& lhs, tuple<Types...>& rhs ) noexcept(/* see below */);  | 
 (since C++11)  (until C++20)  | 
|
|   template< class... Types > constexpr void  | 
(since C++20) | |
Swaps the contents of lhs and rhs. Equivalent to lhs.swap(rhs).
| 
 This function does not participate in overload resolution unless std::is_swappable_v<Ti> is true for all i from 0 to   | 
(since C++17) | 
Parameters
| lhs, rhs | - | tuples whose contents to swap | 
Return value
(none)
Exceptions
noexcept specification:  
noexcept(noexcept(lhs.swap(rhs)))