Destroy the currently managed object (if any), reset this object to have the same pointer as the specified other object, and, if 0 != other->pointer(), the same deleter as other, then put other into an unset state. This method has no effect if this == other.