Postconditions: !*this.
Postconditions: !*this.
executor(const executor& e) noexcept;
Postconditions: !*this if !e; otherwise, *this targets e.target() or a copy of e.target().
executor(executor&& e) noexcept;
Effects: If !e, *this has no target; otherwise, moves e.target() or move-constructs the target of e into the target of *this, leaving e in a valid state with an unspecified value.
template<class Executor> executor(Executor e);
Effects: *this targets a copy of e initialized with std::move(e).
template<class Executor, class ProtoAllocator>
executor(allocator_arg_t, const ProtoAllocator& a, Executor e);
Effects: *this targets a copy of e initialized with std::move(e).
A copy of the allocator argument is used to allocate memory, if necessary, for the internal data structures of the constructed executor object.