Skip to content

Commit 3694fe7

Browse files
authored
move forwarding_query to cuda/std/__execution/env.h (#4743)
1 parent a54dced commit 3694fe7

File tree

4 files changed

+25
-22
lines changed

4 files changed

+25
-22
lines changed

cudax/include/cuda/experimental/__execution/fwd.cuh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,6 @@ struct sync_wait_t;
134134
struct start_detached_t;
135135

136136
// queries:
137-
struct forwarding_query_t;
138137
struct get_allocator_t;
139138
struct get_stop_token_t;
140139
struct get_scheduler_t;

cudax/include/cuda/experimental/__execution/queries.cuh

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -41,26 +41,10 @@ _CCCL_SUPPRESS_DEPRECATED_POP
4141

4242
namespace cuda::experimental::execution
4343
{
44+
using _CUDA_STD_EXEC::__forwarding_query;
4445
using _CUDA_STD_EXEC::__queryable_with;
45-
46-
//////////////////////////////////////////////////////////////////////////////////////////
47-
// forwarding_query_t
48-
_CCCL_GLOBAL_CONSTANT struct forwarding_query_t
49-
{
50-
template <class _Tag>
51-
[[nodiscard]] _CCCL_API constexpr auto operator()(_Tag) const noexcept -> bool
52-
{
53-
if constexpr (__queryable_with<_Tag, forwarding_query_t>)
54-
{
55-
static_assert(noexcept(_Tag().query(*this)));
56-
return _Tag().query(*this);
57-
}
58-
return _CUDA_VSTD::derived_from<_Tag, forwarding_query_t>;
59-
}
60-
} forwarding_query{};
61-
62-
template <class _Tag>
63-
_CCCL_CONCEPT __forwarding_query = _CCCL_REQUIRES_EXPR((_Tag))(forwarding_query(_Tag{}));
46+
using _CUDA_STD_EXEC::forwarding_query;
47+
using _CUDA_STD_EXEC::forwarding_query_t;
6448

6549
//////////////////////////////////////////////////////////////////////////////////////////
6650
// get_allocator

cudax/include/cuda/experimental/__stream/get_stream.cuh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@
2424
#include <cuda/std/__concepts/concept_macros.h>
2525
#include <cuda/std/__concepts/convertible_to.h>
2626
#include <cuda/std/__cuda/api_wrapper.h>
27+
#include <cuda/std/__execution/env.h>
2728
#include <cuda/std/__type_traits/is_convertible.h>
2829
#include <cuda/stream_ref>
2930

30-
#include <cuda/experimental/__execution/queries.cuh>
3131
#include <cuda/experimental/__stream/stream.cuh>
3232

3333
#include <cuda_runtime_api.h>
@@ -83,7 +83,7 @@ struct get_stream_t
8383
return __env.query(*this);
8484
}
8585

86-
[[nodiscard]] _CCCL_HIDE_FROM_ABI static constexpr auto query(execution::forwarding_query_t) noexcept -> bool
86+
[[nodiscard]] _CCCL_HIDE_FROM_ABI static constexpr auto query(_CUDA_STD_EXEC::forwarding_query_t) noexcept -> bool
8787
{
8888
return true;
8989
}

libcudacxx/include/cuda/std/__execution/env.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#endif // no system header
2323

2424
#include <cuda/std/__concepts/concept_macros.h>
25+
#include <cuda/std/__concepts/derived_from.h>
2526
#include <cuda/std/__functional/reference_wrapper.h>
2627
#include <cuda/std/__tuple_dir/ignore.h>
2728
#include <cuda/std/__type_traits/enable_if.h>
@@ -373,6 +374,25 @@ _CCCL_GLOBAL_CONSTANT get_env_t get_env{};
373374
template <class _Ty>
374375
using env_of_t _CCCL_NODEBUG_ALIAS = decltype(get_env(declval<_Ty>()));
375376

377+
//////////////////////////////////////////////////////////////////////////////////////////
378+
// forwarding_query_t
379+
_CCCL_GLOBAL_CONSTANT struct forwarding_query_t
380+
{
381+
template <class _Tag>
382+
[[nodiscard]] _CCCL_API constexpr auto operator()(_Tag) const noexcept -> bool
383+
{
384+
if constexpr (__queryable_with<_Tag, forwarding_query_t>)
385+
{
386+
static_assert(noexcept(_Tag().query(*this)));
387+
return _Tag().query(*this);
388+
}
389+
return _CUDA_VSTD::derived_from<_Tag, forwarding_query_t>;
390+
}
391+
} forwarding_query{};
392+
393+
template <class _Tag>
394+
_CCCL_CONCEPT __forwarding_query = _CCCL_REQUIRES_EXPR((_Tag))(forwarding_query(_Tag{}));
395+
376396
_LIBCUDACXX_END_NAMESPACE_EXECUTION
377397

378398
#include <cuda/std/__cccl/epilogue.h>

0 commit comments

Comments
 (0)