kokkos-execution 0.0.1
Loading...
Searching...
No Matches
completion_signatures.hpp File Reference
#include "exec/completion_signatures.hpp"
#include "stdexec/execution.hpp"

Go to the source code of this file.

Namespaces

namespace  Kokkos
namespace  Kokkos::Execution
namespace  Kokkos::Execution::Impl

Macros

#define KOKKOS_EXECUTION_COMPL_SIGS_ADD(_sndr_type_, ...)
 Completion signatures of _sndr_type_.
#define KOKKOS_EXECUTION_COMPL_SIGS_KEEP(_sndr_type_)

Macro Definition Documentation

◆ KOKKOS_EXECUTION_COMPL_SIGS_ADD

#define KOKKOS_EXECUTION_COMPL_SIGS_ADD ( _sndr_type_,
... )
Value:
template <::stdexec::__decays_to<_sndr_type_> Self, typename... Env> \
static consteval auto get_completion_signatures() { \
using child_completions_t = \
::stdexec::__completion_signatures_of_t<::stdexec::__copy_cvref_t<Self, Sndr>, Env...>; \
constexpr auto success_completion_count = \
::stdexec::__msize_t<::stdexec::__detail::__count_of<::stdexec::set_value_t, child_completions_t>>::value; \
if constexpr (success_completion_count > 0) { \
return experimental::execution::transform_completion_signatures( \
child_completions_t{}, \
experimental::execution::keep_completion<stdexec::set_value_t>(), \
experimental::execution::ignore_completion(), \
experimental::execution::ignore_completion(), \
stdexec::completion_signatures<__VA_ARGS__>()); \
} else { \
return child_completions_t{}; \
} \
}

Completion signatures of _sndr_type_.

The stdexec::set_value_t() completion signature is added only if the child can complete successfully.

References:

Definition at line 18 of file completion_signatures.hpp.

◆ KOKKOS_EXECUTION_COMPL_SIGS_KEEP

#define KOKKOS_EXECUTION_COMPL_SIGS_KEEP ( _sndr_type_)
Value:
template <::stdexec::__decays_to<_sndr_type_> Self, typename... Env> \
static consteval auto get_completion_signatures() { \
return ::stdexec::__completion_signatures_of_t<::stdexec::__copy_cvref_t<Self, Sndr>, Env...>{}; \
}

Definition at line 38 of file completion_signatures.hpp.