26template <
typename Plan, std::
size_t I>
31template <
typename Plan, std::
size_t I>
41template <
typename Plan, std::
size_t I>
53 std::is_void_v<typename Plan::template output_type<parent>>;
57template <
typename Plan, std::
size_t I>
66template <
typename Plan, std::
size_t I>
76 return std::is_void_v<typename Plan::template output_type<parent>>;
80template <
typename Plan, std::
size_t I>
91 if constexpr (std::is_void_v<typename Plan::template output_type<parent>>) {
94 return !std::is_same_v<
101template <
typename Plan, std::size_t...
I>
123template <
typename Plan>
127template <
typename Plan>
132template <
typename Plan>
140 "compile_plan(...) does not allow prev-access nodes at the root; prev-access requires a direct parent carrying a payload");
143 "compile_plan(...) requires prev-access nodes to have a direct parent carrying a non-void payload");
146 "compile_plan(...) does not allow forward-prev nodes at the root");
149 "compile_plan(...) requires forward-prev nodes to have a direct parent carrying a non-void payload");
152 "compile_plan(...) requires forward-prev nodes to match the direct parent logical output type exactly");
155 "compile_plan(...) rejected the task tree because a task uses an invalid prev-access combination");
158 "compile_plan(...) rejected the task tree because the selected fanout policy is incompatible with child prev-access modes");
162template <
typename Plan>
Minimal static-plan protocol required by the prev-access validation path for a specific node index.
constexpr bool plan_validation_always_false_v
consteval bool node_uses_void_parent_prev_access()
consteval bool node_uses_root_prev_access()
consteval plan_validation_error validate_plan_impl(std::index_sequence< I... >)
constexpr bool plan_valid_v
@ prev_access_void_parent
@ forward_prev_void_parent
@ forward_prev_parent_type_mismatch
@ prev_access_mode_invalid
constexpr plan_validation_error plan_validation_error_v
consteval void emit_plan_diagnostic()
consteval bool node_uses_mismatched_forward_prev_parent_type()
consteval bool node_uses_void_parent_forward_prev()
consteval plan_validation_error validate_plan()
constexpr bool is_adapter_descriptor_v
consteval bool node_uses_root_forward_prev()