std::experimental::propagate_const::swap
From cppreference.com
                    
                                        
                    < cpp | experimental | propagate const
                    
                                                            
                    |   constexpr void swap(propagate_const & pt); 
 | 
(library fundamentals TS v2) | |
Swaps the wrapped pointer with that of pt. Let t_ designate the private data member that is the wrapped pointer-like object, then this function is equivalent to swap(t_, pt.t_).
[edit] Parameters
| pt | - |   another propagate_const object to swap with
 | 
[edit] Exceptions
noexcept specification:  
noexcept(noexcept(swap(t_, pt.t_)))