Loading...
Searching...
No Matches
Go to the documentation of this file. 1#ifndef KOKKOS_EXECUTION_IMPL_COMPLETION_SIGNATURES_HPP
2#define KOKKOS_EXECUTION_IMPL_COMPLETION_SIGNATURES_HPP
4#include "exec/completion_signatures.hpp"
5#include "stdexec/execution.hpp"
18#define KOKKOS_EXECUTION_COMPL_SIGS_ADD(_sndr_type_, ...) \
19 template <::stdexec::__decays_to<_sndr_type_> Self, typename... Env> \
20 static consteval auto get_completion_signatures() { \
21 using child_completions_t = \
22 ::stdexec::__completion_signatures_of_t<::stdexec::__copy_cvref_t<Self, Sndr>, Env...>; \
23 constexpr auto success_completion_count = \
24 ::stdexec::__msize_t<::stdexec::__detail::__count_of<::stdexec::set_value_t, child_completions_t>>::value; \
25 if constexpr (success_completion_count > 0) { \
26 return experimental::execution::transform_completion_signatures( \
27 child_completions_t{}, \
28 experimental::execution::keep_completion<stdexec::set_value_t>(), \
29 experimental::execution::ignore_completion(), \
30 experimental::execution::ignore_completion(), \
31 stdexec::completion_signatures<__VA_ARGS__>()); \
33 return child_completions_t{}; \
38#define KOKKOS_EXECUTION_COMPL_SIGS_KEEP(_sndr_type_) \
39 template <::stdexec::__decays_to<_sndr_type_> Self, typename... Env> \
40 static consteval auto get_completion_signatures() { \
41 return ::stdexec::__completion_signatures_of_t<::stdexec::__copy_cvref_t<Self, Sndr>, Env...>{}; \