Skip to content

Commit 90d7a77

Browse files
Avoid instantiating discard_iterator while parsing
1 parent 8ebf1ea commit 90d7a77

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

cub/cub/util_type.cuh

+4-4
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,11 +113,11 @@ 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.
118118
using type =
119119
::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>,
120+
|| ::cuda::std::is_same_v<it_value_t<It>, THRUST_NS_QUALIFIER::detail::any_assign>,
121121
FallbackT,
122122
it_value_t<It>>;
123123
};

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

0 commit comments

Comments
 (0)