13 Asynchronous model [async]

13.25 Class template strand [async.strand]

13.25.2 strand assignment [async.strand.assign]

strand& operator=(const strand& other) noexcept;

Requires: Executor is CopyAssignable (C++ 2014 [copyassignable]).

Postconditions:

  • *this == other

  • get_inner_executor() == other.get_inner_executor()

Returns: *this.

strand& operator=(strand&& other) noexcept;

Requires: Executor is MoveAssignable (C++ 2014 [moveassignable]).

Postconditions:

  • *this is equal to the prior value of other

  • get_inner_executor() == other.get_inner_executor()

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.