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
6#include "exec/completion_signatures.hpp"
19#define KOKKOS_EXECUTION_COMPL_SIGS_ADD(_sndr_type_, ...) \
20 template <::stdexec::__decays_to<_sndr_type_> Self, typename... Env> \
21 static consteval auto get_completion_signatures() { \
22 using child_completions_t = \
23 ::stdexec::__completion_signatures_of_t<::stdexec::__copy_cvref_t<Self, Sndr>, Env...>; \
24 constexpr auto success_completion_count = \
25 ::stdexec::__msize_t<::stdexec::__detail::__count_of<::stdexec::set_value_t, child_completions_t>>::value; \
26 if constexpr (success_completion_count > 0) { \
27 return experimental::execution::transform_completion_signatures( \
28 child_completions_t{}, \
29 experimental::execution::keep_completion<stdexec::set_value_t>(), \
30 experimental::execution::ignore_completion(), \
31 experimental::execution::ignore_completion(), \
32 stdexec::completion_signatures<__VA_ARGS__>()); \
34 return child_completions_t{}; \
39#define KOKKOS_EXECUTION_COMPL_SIGS_KEEP(_sndr_type_) \
40 template <::stdexec::__decays_to<_sndr_type_> Self, typename... Env> \
41 static consteval auto get_completion_signatures() { \
42 return ::stdexec::__completion_signatures_of_t<::stdexec::__copy_cvref_t<Self, Sndr>, Env...>{}; \