kokkos-execution 0.0.1
Loading...
Searching...
No Matches
sender_concepts.hpp
Go to the documentation of this file.
1#ifndef KOKKOS_EXECUTION_EXECUTION_SPACE_SENDER_CONCEPTS_HPP
2#define KOKKOS_EXECUTION_EXECUTION_SPACE_SENDER_CONCEPTS_HPP
3
5
7
9
11template <typename Sndr, typename... Env>
13 stdexec::sender<Sndr>
14 && stdexec::__is_instance_of<
15 std::invoke_result_t<stdexec::get_completion_scheduler_t<stdexec::set_value_t>, stdexec::env_of_t<Sndr>, Env...>,
17 >;
18
19template <typename Sndr, typename... Env>
20struct ExecutionSpaceCompletingSender : public std::bool_constant<execution_space_completing_sender<Sndr, Env...>> { };
21
22struct CANNOT_DISPATCH_THIS_ALGORITHM_TO_THE_EXECUTION_SPACE_SCHEDULER;
23struct BECAUSE_THERE_IS_NO_EXECUTION_SPACE_SCHEDULER_IN_THE_ENVIRONMENT;
24
30template <typename Tag, typename Sndr, typename... Env>
32 return stdexec::__not_a_sender<
33 stdexec::_WHAT_(CANNOT_DISPATCH_THIS_ALGORITHM_TO_THE_EXECUTION_SPACE_SCHEDULER),
34 stdexec::_WHY_(BECAUSE_THERE_IS_NO_EXECUTION_SPACE_SCHEDULER_IN_THE_ENVIRONMENT),
35 stdexec::_WHERE_(stdexec::_IN_ALGORITHM_, Tag),
36 stdexec::_WITH_PRETTY_SENDER_<Sndr>,
37 stdexec::_WITH_ENVIRONMENT_(Env...)
38 >{};
39}
40
41} // namespace Kokkos::Execution::ExecutionSpaceImpl
42
43#endif // KOKKOS_EXECUTION_EXECUTION_SPACE_SENDER_CONCEPTS_HPP
Concept for a sender whose completion scheduler is Kokkos::Execution::ExecutionSpaceImpl::Scheduler.
auto no_execution_space_scheduler_in_env() noexcept
Show a better compile diagnostic when there is no Kokkos::Execution::ExecutionSpaceImpl::Scheduler fo...
Scheduler for a Kokkos execution space.