Swap the value of this object with the value of the specified other object. This method provides the no‐throw guarantee if the TYPE template parameter has a no‐throw swap and the two variant objects being swapped have the same type; otherwise this method provides the basic guarantee.