Skip to content

Commit 13f50a5

Browse files
Avoid instantiating discard_iterator while parsing
1 parent ace735f commit 13f50a5

File tree

4 files changed

+12
-11
lines changed

4 files changed

+12
-11
lines changed

cub/cub/util_type.cuh

+7-8
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,12 @@
4646
#include <cub/detail/type_traits.cuh>
4747
#include <cub/detail/uninitialized_copy.cuh>
4848

49-
#include <thrust/iterator/discard_iterator.h>
49+
#include <thrust/iterator/detail/any_assign.h>
5050

5151
#include <cuda/std/cstdint>
5252
#include <cuda/std/iterator>
5353
#include <cuda/std/limits>
54-
#include <cuda/std/type_traits>
54+
#include <cuda/type_traits>
5555

5656
#if _CCCL_HAS_NVFP16()
5757
# include <cuda_fp16.h>
@@ -113,13 +113,12 @@ struct non_void_value_impl
113113
template <typename It, typename FallbackT>
114114
struct non_void_value_impl<It, FallbackT, false>
115115
{
116-
// we consider thrust::discard_iterator's value_type as `void` as well, so users can switch from
116+
// we consider thrust::discard_iterator's value_type (`any_assign`) as `void` as well, so users can switch from
117117
// cub::DiscardInputIterator to thrust::discard_iterator.
118-
using type =
119-
::cuda::std::_If<::cuda::std::is_void_v<it_value_t<It>>
120-
|| ::cuda::std::is_same_v<it_value_t<It>, THRUST_NS_QUALIFIER::discard_iterator<>::value_type>,
121-
FallbackT,
122-
it_value_t<It>>;
118+
using type = ::cuda::std::_If<::cuda::std::is_void_v<it_value_t<It>>
119+
|| ::cuda::std::is_same_v<it_value_t<It>, THRUST_NS_QUALIFIER::detail::any_assign>,
120+
FallbackT,
121+
it_value_t<It>>;
123122
};
124123

125124
/**

thrust/thrust/iterator/discard_iterator.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -164,10 +164,11 @@ class discard_iterator : public detail::make_discard_iterator_base<System>::type
164164
//! parameter is \c 0.
165165
//! \return A new \p discard_iterator with index as given by \p i.
166166
//! \see constant_iterator
167+
template <typename System = use_default>
167168
inline _CCCL_HOST_DEVICE discard_iterator<>
168-
make_discard_iterator(discard_iterator<>::difference_type i = discard_iterator<>::difference_type(0))
169+
make_discard_iterator(typename discard_iterator<System>::difference_type i = {})
169170
{
170-
return discard_iterator<>(i);
171+
return discard_iterator<System>(i);
171172
}
172173

173174
//! \} // end fancyiterators

thrust/thrust/system/cuda/detail/core/load_iterator.h

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030

3131
#include <cub/iterator/cache_modified_input_iterator.cuh>
3232

33+
#include <thrust/iterator/iterator_traits.h>
3334
#include <thrust/type_traits/is_contiguous_iterator.h>
3435

3536
THRUST_NAMESPACE_BEGIN

thrust/thrust/system/cuda/detail/execution_policy.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ struct execution_policy<tag> : thrust::execution_policy<tag>
6262

6363
struct tag
6464
: execution_policy<tag>
65-
, detail::allocator_aware_execution_policy<cuda_cub::execution_policy>
65+
, thrust::detail::allocator_aware_execution_policy<cuda_cub::execution_policy>
6666
{};
6767

6868
template <class Derived>

0 commit comments

Comments
 (0)