kokkos-execution
0.0.1
Toggle main menu visibility
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
4
#include "
kokkos-execution/stdexec.hpp
"
5
6
#include "
kokkos-execution/execution_space/execution_space_fwd.hpp
"
7
8
namespace
Kokkos::Execution::ExecutionSpaceImpl
{
9
11
template
<
typename
Sndr,
typename
... Env>
12
concept
execution_space_completing_sender
=
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...>,
16
Scheduler
17
>;
18
19
template
<
typename
Sndr,
typename
... Env>
20
struct
ExecutionSpaceCompletingSender
:
public
std::bool_constant<execution_space_completing_sender<Sndr, Env...>> { };
21
22
struct
CANNOT_DISPATCH_THIS_ALGORITHM_TO_THE_EXECUTION_SPACE_SCHEDULER;
23
struct
BECAUSE_THERE_IS_NO_EXECUTION_SPACE_SCHEDULER_IN_THE_ENVIRONMENT;
24
30
template
<
typename
Tag,
typename
Sndr,
typename
... Env>
31
auto
no_execution_space_scheduler_in_env
() noexcept {
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
Kokkos::Execution::ExecutionSpaceImpl::execution_space_completing_sender
Concept for a sender whose completion scheduler is Kokkos::Execution::ExecutionSpaceImpl::Scheduler.
Definition
sender_concepts.hpp:12
execution_space_fwd.hpp
stdexec.hpp
Kokkos::Execution::ExecutionSpaceImpl
Definition
execution_space.hpp:22
Kokkos::Execution::ExecutionSpaceImpl::no_execution_space_scheduler_in_env
auto no_execution_space_scheduler_in_env() noexcept
Show a better compile diagnostic when there is no Kokkos::Execution::ExecutionSpaceImpl::Scheduler fo...
Definition
sender_concepts.hpp:31
Kokkos::Execution::ExecutionSpaceImpl::ExecutionSpaceCompletingSender
Definition
sender_concepts.hpp:20
Kokkos::Execution::ExecutionSpaceImpl::Scheduler
Scheduler for a Kokkos execution space.
Definition
execution_space.hpp:31
kokkos-execution
execution_space
sender_concepts.hpp
Generated on
for kokkos-execution by
1.18.0