12 template <std::
size_t Level,
typename Task>
19 "yorch::task_tree.node<Level>(...) received a direct-output task; use node_into<Level>(...) instead.");
22 template <std::
size_t Level,
typename Task,
typename FanoutPolicy>
30 "yorch::task_tree.node<Level>(...) received a direct-output task; use node_into<Level>(...) instead.");
33 template <std::
size_t Level,
typename F>
37 constexpr void node(
F&&)
const& {
40 "yorch::task_tree.node<Level>(...) received a direct-output callable whose last parameter is yorch::direct_out<T>; use node_into<Level>(...) instead.");
43 template <std::
size_t Level,
typename F,
typename FanoutPolicyOrChain>
51 "yorch::task_tree.node<Level>(...) received a direct-output callable whose last parameter is yorch::direct_out<T>; use node_into<Level>(...) instead.");
54 template <std::
size_t Level,
typename F,
typename FanoutPolicy,
typename AdapterChain>
63 "yorch::task_tree.node<Level>(...) received a direct-output callable whose last parameter is yorch::direct_out<T>; use node_into<Level>(...) instead.");
66 template <std::
size_t Level,
typename Task>
73 "yorch::task_tree.node_into<Level>(...) received a non-direct-output task; use node<Level>(...) instead.");
76 template <std::
size_t Level,
typename Task,
typename FanoutPolicy>
84 "yorch::task_tree.node_into<Level>(...) received a non-direct-output task; use node<Level>(...) instead.");
87 template <std::
size_t Level,
typename F>
94 "yorch::task_tree.node_into<Level>(...) requires a callable whose last parameter is yorch::direct_out<T>; use node<Level>(...) for ordinary tasks.");
97 template <std::
size_t Level,
typename F,
typename FanoutPolicyOrChain>
105 "yorch::task_tree.node_into<Level>(...) requires a callable whose last parameter is yorch::direct_out<T>; use node<Level>(...) for ordinary tasks.");
108 template <std::
size_t Level,
typename F,
typename FanoutPolicy,
typename AdapterChain>
117 "yorch::task_tree.node_into<Level>(...) requires a callable whose last parameter is yorch::direct_out<T>; use node<Level>(...) for ordinary tasks.");
120 template <std::
size_t Level,
typename Task>
127 "yorch::task_tree.node_forward_prev<Level>(...) only accepts a callable; pass prebuilt tasks directly to node<Level>(...) instead.");
130 template <std::
size_t Level,
typename Task,
typename FanoutPolicyOrChain>
138 "yorch::task_tree.node_forward_prev<Level>(...) only accepts a callable; pass prebuilt tasks directly to node<Level>(...) instead.");
141 template <std::
size_t Level,
typename F>
148 "yorch::task_tree.node_forward_prev<Level>(...) does not accept callables with yorch::direct_out<T>; use node_into<Level>(...) for direct-output materialization.");
151 template <std::
size_t Level,
typename F,
typename FanoutPolicyOrChain>
159 "yorch::task_tree.node_forward_prev<Level>(...) does not accept callables with yorch::direct_out<T>; use node_into<Level>(...) for direct-output materialization.");
162 template <std::
size_t Level,
typename F,
typename FanoutPolicy,
typename AdapterChain>
171 "yorch::task_tree.node_forward_prev<Level>(...) does not accept callables with yorch::direct_out<T>; use node_into<Level>(...) for direct-output materialization.");
174 template <std::
size_t Level,
typename F>
181 "yorch::task_tree.node_forward_prev<Level>(...) does not accept member function pointers; use node_forward_prev_member<Level>(...) instead.");
184 template <std::
size_t Level,
typename F>
191 "yorch::task_tree.node_forward_prev<Level>(...) does not accept direct-output member functions; use node_into_member<Level>(...) instead.");
194 template <std::
size_t Level,
typename F,
typename FanoutPolicyOrChain>
202 "yorch::task_tree.node_forward_prev<Level>(...) does not accept member function pointers; use node_forward_prev_member<Level>(...) instead.");
205 template <std::
size_t Level,
typename F,
typename FanoutPolicyOrChain>
213 "yorch::task_tree.node_forward_prev<Level>(...) does not accept direct-output member functions; use node_into_member<Level>(...) instead.");
216 template <std::
size_t Level,
typename F>
223 "yorch::task_tree.node_forward_prev_member<Level>(...) requires an explicit receiver binding as its second argument.");
226 template <std::
size_t Level,
typename F>
233 "yorch::task_tree.node_forward_prev_member<Level>(...) requires an explicit receiver binding as its second argument; use node_into_member<Level>(...) for direct-output member functions.");
236 template <std::
size_t Level,
typename F,
typename FanoutPolicyOrChain>
244 "yorch::task_tree.node_forward_prev_member<Level>(...) requires an explicit receiver binding as its second argument; pass fanout policies or adapters only after the receiver.");
247 template <std::
size_t Level,
typename F,
typename FanoutPolicyOrChain>
255 "yorch::task_tree.node_forward_prev_member<Level>(...) requires an explicit receiver binding as its second argument; use node_into_member<Level>(...) for direct-output member functions.");
258 template <std::
size_t Level,
typename F,
typename ReceiverSpec>
265 "yorch::task_tree.node_forward_prev_member<Level>(...) received a direct-output member function whose last parameter is yorch::direct_out<T>; use node_into_member<Level>(...) instead.");
268 template <std::
size_t Level,
typename F,
typename ReceiverSpec,
typename FanoutPolicyOrChain>
277 "yorch::task_tree.node_forward_prev_member<Level>(...) received a direct-output member function whose last parameter is yorch::direct_out<T>; use node_into_member<Level>(...) instead.");
280 template <std::
size_t Level,
typename F>
287 "yorch::task_tree.node_member<Level>(...) requires an explicit receiver binding as its second argument.");
290 template <std::
size_t Level,
typename F>
297 "yorch::task_tree.node_member<Level>(...) requires an explicit receiver binding as its second argument; use node_into_member<Level>(...) for direct-output member functions.");
300 template <std::
size_t Level,
typename F,
typename FanoutPolicyOrChain>
308 "yorch::task_tree.node_member<Level>(...) requires an explicit receiver binding as its second argument; pass fanout policies or adapters only after the receiver.");
311 template <std::
size_t Level,
typename F,
typename FanoutPolicyOrChain>
319 "yorch::task_tree.node_member<Level>(...) requires an explicit receiver binding as its second argument; use node_into_member<Level>(...) for direct-output member functions.");
322 template <std::
size_t Level,
typename F,
typename ReceiverSpec>
329 "yorch::task_tree.node_member<Level>(...) received a direct-output member function whose last parameter is yorch::direct_out<T>; use node_into_member<Level>(...) instead.");
332 template <std::
size_t Level,
typename F,
typename ReceiverSpec,
typename FanoutPolicyOrChain>
341 "yorch::task_tree.node_member<Level>(...) received a direct-output member function whose last parameter is yorch::direct_out<T>; use node_into_member<Level>(...) instead.");
344 template <std::
size_t Level,
typename F>
351 "yorch::task_tree.node_into_member<Level>(...) requires an explicit receiver binding as its second argument.");
354 template <std::
size_t Level,
typename F>
361 "yorch::task_tree.node_into_member<Level>(...) requires an explicit receiver binding as its second argument; use node_member<Level>(...) for ordinary member functions.");
364 template <std::
size_t Level,
typename F,
typename FanoutPolicyOrChain>
372 "yorch::task_tree.node_into_member<Level>(...) requires an explicit receiver binding as its second argument; pass fanout policies or adapters only after the receiver.");
375 template <std::
size_t Level,
typename F,
typename FanoutPolicyOrChain>
383 "yorch::task_tree.node_into_member<Level>(...) requires an explicit receiver binding as its second argument; use node_member<Level>(...) for ordinary member functions.");
386 template <std::
size_t Level,
typename F,
typename ReceiverSpec>
393 "yorch::task_tree.node_into_member<Level>(...) requires a member function whose last parameter is yorch::direct_out<T>; use node_member<Level>(...) for ordinary member functions.");
396 template <std::
size_t Level,
typename F,
typename ReceiverSpec,
typename FanoutPolicyOrChain>
405 "yorch::task_tree.node_into_member<Level>(...) requires a member function whose last parameter is yorch::direct_out<T>; use node_member<Level>(...) for ordinary member functions.");
constexpr bool append_level_valid_v
constexpr bool is_adapter_descriptor_v
constexpr void node_forward_prev(F &&, FanoutPolicy &&, AdapterChain &&) const &
constexpr void node_forward_prev(F &&, FanoutPolicyOrChain &&) const &
constexpr void node_forward_prev(F &&, FanoutPolicyOrChain &&) const &
constexpr void node_forward_prev_member(F &&) const &
constexpr void node_into(F &&, FanoutPolicy &&, AdapterChain &&) const &
constexpr void node_forward_prev_member(F &&, FanoutPolicyOrChain &&) const &
constexpr void node_member(F &&) const &
constexpr void node(F &&, FanoutPolicy &&, AdapterChain &&) const &
constexpr void node_member(F &&, ReceiverSpec &&, FanoutPolicyOrChain &&) const &
constexpr void node_forward_prev_member(F &&, ReceiverSpec &&, FanoutPolicyOrChain &&) const &
constexpr void node_into_member(F &&) const &
constexpr void node_forward_prev(F &&) const &
constexpr void node_into(Task &&, FanoutPolicy &&) const &
constexpr void node_into(Task &&) const &
constexpr void node_member(F &&) const &
constexpr void node_forward_prev(F &&, FanoutPolicyOrChain &&) const &
constexpr void node_forward_prev(F &&) const &
constexpr void node_into_member(F &&, FanoutPolicyOrChain &&) const &
constexpr void node_into_member(F &&) const &
constexpr void node_forward_prev_member(F &&, FanoutPolicyOrChain &&) const &
constexpr void node_member(F &&, FanoutPolicyOrChain &&) const &
constexpr void node(F &&) const &
constexpr void node_forward_prev(Task &&) const &
constexpr void node_forward_prev(Task &&, FanoutPolicyOrChain &&) const &
constexpr void node(Task &&) const &
constexpr void node_forward_prev(F &&) const &
constexpr void node(F &&, FanoutPolicyOrChain &&) const &
constexpr void node_forward_prev_member(F &&) const &
constexpr void node(Task &&, FanoutPolicy &&) const &
constexpr void node_into(F &&, FanoutPolicyOrChain &&) const &
constexpr void node_forward_prev_member(F &&, ReceiverSpec &&) const &
constexpr void node_into_member(F &&, ReceiverSpec &&) const &
constexpr void node_member(F &&, FanoutPolicyOrChain &&) const &
constexpr void node_into_member(F &&, ReceiverSpec &&, FanoutPolicyOrChain &&) const &
constexpr void node_into_member(F &&, FanoutPolicyOrChain &&) const &
constexpr void node_into(F &&) const &
constexpr void node_member(F &&, ReceiverSpec &&) const &