Transfer ownership of the asynchronous result associated with the one
object to another.
Transfers ownership of an asynchronous state between
The asynchronous result associated with
prior to the invocation of the constructor is associated with
other has no associated
asynchronous result. The ownership of the asynchronous state (if
any) associated with
*this prior to the call is released,
and the state destroyed if this is the last reference.
returns the same value that
other.valid() returned before the invocation
of this constructor.