value& operator=( value&& other);
The contents of the value are replaced with the contents of
other using move semantics:
*other.storage() == *sp, ownership of the underlying memory is transferred in constant time, with no possibility of exceptions. After assignment, the moved-from value becomes a null with its current storage pointer.
*other.storage() != *sp, an element-wise copy is performed if
other.is_structured() == true, which may throw. In this case, the moved-from value is not changed.
Constant, or linear in
Strong guarantee. Calls to
The value to assign from.