5#include "../detail/slots/policy.hpp"
6#include "../detail/task/traits.hpp"
7#include "../result.hpp"
25template <
typename Task,
typename =
void>
40template <
typename Task>
42 using type =
typename std::remove_cvref_t<Task>::raw_result_type;
52template <
typename Task>
55template <
typename Task>
61template <
typename Task,
typename =
void>
64template <
typename Task>
67 std::
void_t<typename std::remove_cvref_t<Task>::output_type>
69 using type =
typename std::remove_cvref_t<Task>::output_type;
72template <
typename Task,
typename =
void>
75template <
typename Task>
78 std::
void_t<typename std::remove_cvref_t<Task>::output_type>
98 static_assert(!std::is_reference_v<R>,
99 "Task raw return references are not supported as parent payloads");
112template <
typename Task,
typename =
void>
117template <
typename Task>
120 std::
void_t<typename plan_declared_task_output<Task>::type>
125template <
typename Task>
128template <
typename Task,
typename =
void>
135 std::is_void_v<raw_t> ||
136 std::is_same_v<raw_t, step_result>
141template <
typename Task>
144 std::
void_t<typename plan_declared_task_output<Task>::type>
152template <
typename Task>
156template <
typename Task,
typename =
void>
163 std::is_void_v<raw_t> ||
164 std::is_same_v<raw_t, step_result>
181template <
typename Task>
184 std::
void_t<typename plan_declared_task_output<Task>::type>
192template <
typename Task>
196template <
typename Node>
199 typename Node::task_type;
203template <
typename...
Nodes>
typename task_output_for< Task >::type task_output_for_t
output_storage_mode
Describes how a node's logical output is backed at runtime.
constexpr detail::output_storage_mode task_output_storage_mode_v
constexpr slot_logical_policy task_slot_logical_policy_v
typename task_output_type< R >::type task_output_t
typename task_raw_result< Task >::type task_raw_result_t
Convenience alias for a task's raw return type.
slot_logical_policy
Node-local slot semantics inferred from a task's result protocol.
constexpr bool is_adapter_descriptor_v
typename std::remove_cvref_t< Task >::output_type type
typename plan_declared_task_output< Task >::type type
task_output_t< task_raw_result_t< Task > > type
static constexpr detail::output_storage_mode value
typename task_output_type_impl< std::remove_cv_t< R > >::type type
typename std::remove_cvref_t< Task >::raw_result_type type
Compile-time trait that extracts a task's raw return type.
static constexpr slot_logical_policy value
Represents the basic outcome of a task step.
Represents a step result that may carry a produced value.