Assigns the contents of another future object.
1) Releases any shared state and move-assigns the contents of
other to *this. After the assignment, other.valid() == false and this->valid() will yield the same value as other.valid() before the assignment.
2) std::experimental::future is not CopyAssignable.
|other||-|| a |
 Return value