boost::interprocess::swap
template<typename T, typename D> void swap(scoped_ptr< T, D > & a, scoped_ptr< T, D > & b);
Exchanges the internal pointer and deleter with other scoped_ptr Never throws.