1#ifndef KOKKOS_EXECUTION_TESTS_UTILS_CHECK_RCVR_ENV_QUERYABLE_WITH_HPP
2#define KOKKOS_EXECUTION_TESTS_UTILS_CHECK_RCVR_ENV_QUERYABLE_WITH_HPP
21template <
bool IsQueryable, stdexec::sender Sndr,
typename... Queries>
24template <
bool IsQueryable,
typename... Queries>
28 return stdexec::__closure(*
this);
31 template <stdexec::sender Sndr>
38template <
bool IsQueryable, stdexec::sender Sndr,
typename... Queries>
46 template <stdexec::__decays_to<CheckRcvrEnvQueryableWithSender> Self, stdexec::receiver Rcvr>
48 constexpr STDEXEC_EXPLICIT_THIS_BEGIN(
49 auto connect)(
this Self&& self, Rcvr rcvr)
53 return stdexec::connect(std::forward<Self>(self).
sndr, std::move(rcvr));
55 STDEXEC_EXPLICIT_THIS_END(connect)
57 template <stdexec::receiver Rcvr>
59 if constexpr (IsQueryable) {
61 (stdexec::__queryable_with<stdexec::env_of_t<Rcvr>, Queries> && ...),
62 "The receiver environment is not queryable with at least one query from the given set of queries.");
65 ((!stdexec::__queryable_with<stdexec::env_of_t<Rcvr>, Queries>) && ...),
66 "The receiver environment is queryable with at least one query from the given set of queries.");
74template <
typename... Queries>
77template <
typename... Queries>
#define KOKKOS_EXECUTION_IMPL_FORWARDING_ATTRIBUTES_GET_ENV(_type_, _obj_)
#define KOKKOS_EXECUTION_COMPL_SIGS_KEEP(_decayed_self_type_, _sndr_type_)
constexpr check_rcvr_env_queryable_with_t< false, Queries... > check_rcvr_env_not_queryable_with
constexpr check_rcvr_env_queryable_with_t< true, Queries... > check_rcvr_env_queryable_with
static consteval bool check_rcvr_env()
stdexec::sender_tag sender_concept
constexpr auto operator()() const noexcept
constexpr auto operator()(Sndr &&sndr) const
#define KOKKOS_EXECUTION_IMPL_MEMBER_CVREF_T(_Self_, _member_)
Yields the type of member _member_ as accessed from expression _Self_, preserving the cv and ref qual...