YOrch 1.0.0
Loading...
Searching...
No Matches
yorch::detail::declared_task_raw_result_matches_invoke_raw< Task, Ctx, Prev, typename > Struct Template Reference

Reports whether a task's declared raw_result_type agrees with the concrete return type of invoke_raw(exec_context<Ctx, Prev>&). More...

#include <traits.hpp>

Inheritance diagram for yorch::detail::declared_task_raw_result_matches_invoke_raw< Task, Ctx, Prev, typename >:
Collaboration diagram for yorch::detail::declared_task_raw_result_matches_invoke_raw< Task, Ctx, Prev, typename >:

Detailed Description

template<typename Task, typename Ctx, typename Prev, typename = void>
struct yorch::detail::declared_task_raw_result_matches_invoke_raw< Task, Ctx, Prev, typename >

Reports whether a task's declared raw_result_type agrees with the concrete return type of invoke_raw(exec_context<Ctx, Prev>&).

This trait is intentionally permissive for tasks that do not declare raw_result_type: in that case it yields true, so runtime-only task shapes can still participate in lower-level execution checks. When a task does opt into the declared raw-result contract, however, this trait enforces that the declaration remains consistent with the actual invoke_raw(...) expression type observed for the concrete execution context.

The executor and task adapters use this as a protocol guard so plan-facing metadata and execution-time behavior cannot silently drift apart.

Template Parameters
TaskTask type being checked.
CtxContext schema for the concrete invocation.
PrevDirect-parent slot view type for the concrete invocation.
EnableSFINAE hook that activates strict checking only when Task::raw_result_type is declared.

Definition at line 89 of file traits.hpp.


The documentation for this struct was generated from the following file: