executor_binder(T t, const Executor& ex);
Effects: Initializes ex_ with ex. Initializes target_ by performing uses-executor construction, using the constructor argument std::move(t) and the executor ex_.
template<class U, class OtherExecutor>
executor_binder(const executor_binder<U, OtherExecutor>& other);
Requires: If U is not convertible to T, or if OtherExecutor is not convertible to Executor, the program is ill-formed.
Effects: Initializes ex_ with other.get_executor(). Initializes target_ by performing uses-executor construction, using the constructor argument other.get() and the executor ex_.
template<class U, class OtherExecutor>
executor_binder(executor_binder<U, OtherExecutor>&& other);
Requires: If U is not convertible to T, or if OtherExecutor is not convertible to Executor, the program is ill-formed.
Effects: Initializes ex_ with other.get_executor(). Initializes target_ by performing uses-executor construction, using the constructor argument std::move(other.get()) and the executor ex_.
template<class U, class OtherExecutor>
executor_binder(executor_arg_t, const Executor& ex,
const executor_binder<U, OtherExecutor>& other);
Requires: If U is not convertible to T the program is ill-formed.
Effects: Initializes ex_ with ex. Initializes target_ by performing uses-executor construction, using the constructor argument other.get() and the executor ex_.
template<class U, class OtherExecutor>
executor_binder(executor_arg_t, const Executor& ex,
executor_binder<U, OtherExecutor>&& other);
Requires: U is T or convertible to T.
Effects: Initializes ex_ with ex. Initializes target_ by performing uses-executor construction, using the constructor argument std::move(other.get()) and the executor ex_.