strand& operator=(const strand& other) noexcept;
Requires: Executor is CopyAssignable (C++ 2014 [copyassignable]).
Returns: *this.
strand& operator=(strand&& other) noexcept;
Requires: Executor is MoveAssignable (C++ 2014 [moveassignable]).
Returns: *this.
template<class OtherExecutor> strand& operator=(const strand<OtherExecutor>& other) noexcept;
Requires: OtherExecutor is convertible to Executor. Executor is CopyAssignable (C++ 2014 [copyassignable]).
Effects: Assigns other.inner_ex_ to inner_ex_.
Postconditions: *this == other.
Returns: *this.
template<class OtherExecutor> strand& operator=(strand<OtherExecutor>&& other) noexcept;
Requires: OtherExecutor is convertible to Executor. Executor is MoveAssignable (C++ 2014 [moveassignable]).
Effects: Assigns std::move(other.inner_ex_) to inner_ex_.
Postconditions: *this is equal to the prior value of other.
Returns: *this.