executor& operator=(const executor& e) noexcept;
Effects: executor(e).swap(*this).
Returns: *this.
executor& operator=(executor&& e) noexcept;
Effects: Replaces the target of *this with the target of e, leaving e in a valid state with an unspecified value.
Returns: *this.
executor& operator=(nullptr_t) noexcept;
Effects: executor(nullptr).swap(*this).
Returns: *this.
template<class Executor> executor& operator=(Executor e);
Effects: executor(std::move(e)).swap(*this).
Returns: *this.