YOrch 1.0.0
Loading...
Searching...
No Matches
yorch::executable_task Concept Reference

Describes the main execution protocol accepted by run_task(...). More...

#include <concepts.hpp>

Concept definition

template<typename Task, typename Ctx, typename Prev no_prev>
requires(Task&& task, exec_context<Ctx, Prev>& ec) {
std::forward<Task>(task).invoke_raw(ec);
} &&
requires(Task&& task, exec_context<Ctx, Prev>& ec) {
requires noexcept(std::forward<Task>(task).invoke_raw(ec));
}
Describes the main execution protocol accepted by run_task(...).
Definition concepts.hpp:27
constexpr bool is_adapter_descriptor_v
Definition adapters.hpp:63
constexpr auto task(F &&f)
Definition core.hpp:207
Lightweight borrowed view used during execution.
Definition context.hpp:187

Detailed Description

Describes the main execution protocol accepted by run_task(...).

A task is executable on the main path only when it exposes invoke_raw(exec_context<...>&) and that call is itself noexcept. Throwing tasks are intentionally excluded from this concept; they must be adapted first, for example with catch_as_failure(...), before they can be handed to the executor.

Template Parameters
TaskTask object type.
CtxContext schema.
PrevDirect-parent slot view type.

Definition at line 27 of file concepts.hpp.