|
51 | 51 | #include <cub/iterator/cache_modified_input_iterator.cuh>
|
52 | 52 | #include <cub/iterator/constant_input_iterator.cuh>
|
53 | 53 |
|
| 54 | +#include <cuda/std/type_traits> |
| 55 | + |
54 | 56 | #include <iterator>
|
55 | 57 |
|
56 | 58 | CUB_NAMESPACE_BEGIN
|
@@ -225,27 +227,27 @@ struct AgentReduceByKey
|
225 | 227 | // CacheModifiedValuesInputIterator or directly use the supplied input
|
226 | 228 | // iterator type
|
227 | 229 | using WrappedKeysInputIteratorT =
|
228 |
| - cub::detail::conditional_t<std::is_pointer<KeysInputIteratorT>::value, |
229 |
| - CacheModifiedInputIterator<AgentReduceByKeyPolicyT::LOAD_MODIFIER, KeyInputT, OffsetT>, |
230 |
| - KeysInputIteratorT>; |
| 230 | + ::cuda::std::_If<std::is_pointer<KeysInputIteratorT>::value, |
| 231 | + CacheModifiedInputIterator<AgentReduceByKeyPolicyT::LOAD_MODIFIER, KeyInputT, OffsetT>, |
| 232 | + KeysInputIteratorT>; |
231 | 233 |
|
232 | 234 | // Cache-modified Input iterator wrapper type (for applying cache modifier)
|
233 | 235 | // for values Wrap the native input pointer with
|
234 | 236 | // CacheModifiedValuesInputIterator or directly use the supplied input
|
235 | 237 | // iterator type
|
236 | 238 | using WrappedValuesInputIteratorT =
|
237 |
| - cub::detail::conditional_t<std::is_pointer<ValuesInputIteratorT>::value, |
238 |
| - CacheModifiedInputIterator<AgentReduceByKeyPolicyT::LOAD_MODIFIER, ValueInputT, OffsetT>, |
239 |
| - ValuesInputIteratorT>; |
| 239 | + ::cuda::std::_If<std::is_pointer<ValuesInputIteratorT>::value, |
| 240 | + CacheModifiedInputIterator<AgentReduceByKeyPolicyT::LOAD_MODIFIER, ValueInputT, OffsetT>, |
| 241 | + ValuesInputIteratorT>; |
240 | 242 |
|
241 | 243 | // Cache-modified Input iterator wrapper type (for applying cache modifier)
|
242 | 244 | // for fixup values Wrap the native input pointer with
|
243 | 245 | // CacheModifiedValuesInputIterator or directly use the supplied input
|
244 | 246 | // iterator type
|
245 | 247 | using WrappedFixupInputIteratorT =
|
246 |
| - cub::detail::conditional_t<std::is_pointer<AggregatesOutputIteratorT>::value, |
247 |
| - CacheModifiedInputIterator<AgentReduceByKeyPolicyT::LOAD_MODIFIER, ValueInputT, OffsetT>, |
248 |
| - AggregatesOutputIteratorT>; |
| 248 | + ::cuda::std::_If<std::is_pointer<AggregatesOutputIteratorT>::value, |
| 249 | + CacheModifiedInputIterator<AgentReduceByKeyPolicyT::LOAD_MODIFIER, ValueInputT, OffsetT>, |
| 250 | + AggregatesOutputIteratorT>; |
249 | 251 |
|
250 | 252 | // Reduce-value-by-segment scan operator
|
251 | 253 | using ReduceBySegmentOpT = ReduceBySegmentOp<ReductionOpT>;
|
|
0 commit comments