Skip to content

Commit

Permalink
Move zip_iterator to internally use cuda::std::tuple
Browse files Browse the repository at this point in the history
We want to get rid of the former and passing in a `cuda::std::tuple` into `thrust::make_zip_iterator` has surprising results.
  • Loading branch information
miscco committed Feb 6, 2025
1 parent 044cabf commit e20f832
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 6 deletions.
8 changes: 4 additions & 4 deletions thrust/thrust/iterator/detail/zip_iterator.inl
Original file line number Diff line number Diff line change
Expand Up @@ -91,15 +91,15 @@ zip_iterator<IteratorTuple>::distance_to(const zip_iterator<OtherIteratorTuple>&
} // end zip_iterator::distance_to()

template <typename... Iterators>
_CCCL_HOST_DEVICE zip_iterator<thrust::tuple<Iterators...>> make_zip_iterator(thrust::tuple<Iterators...> t)
_CCCL_HOST_DEVICE zip_iterator<_CUDA_VSTD::tuple<Iterators...>> make_zip_iterator(_CUDA_VSTD::tuple<Iterators...> t)
{
return zip_iterator<thrust::tuple<Iterators...>>(t);
return zip_iterator<_CUDA_VSTD::tuple<Iterators...>>(t);
} // end make_zip_iterator()

template <typename... Iterators>
_CCCL_HOST_DEVICE zip_iterator<thrust::tuple<Iterators...>> make_zip_iterator(Iterators... its)
_CCCL_HOST_DEVICE zip_iterator<_CUDA_VSTD::tuple<Iterators...>> make_zip_iterator(Iterators... its)
{
return make_zip_iterator(thrust::make_tuple(its...));
return make_zip_iterator(_CUDA_VSTD::make_tuple(its...));
} // end make_zip_iterator()

THRUST_NAMESPACE_END
7 changes: 5 additions & 2 deletions thrust/thrust/iterator/zip_iterator.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@
#include <thrust/iterator/detail/zip_iterator_base.h>
#include <thrust/iterator/iterator_facade.h>

#include <cuda/std/tuple>

THRUST_NAMESPACE_BEGIN

/*! \addtogroup iterators
Expand Down Expand Up @@ -215,7 +217,8 @@ class _CCCL_DECLSPEC_EMPTY_BASES zip_iterator : public detail::zip_iterator_base
* \see zip_iterator
*/
template <typename... Iterators>
inline _CCCL_HOST_DEVICE zip_iterator<thrust::tuple<Iterators...>> make_zip_iterator(thrust::tuple<Iterators...> t);
inline _CCCL_HOST_DEVICE zip_iterator<_CUDA_VSTD::tuple<Iterators...>>
make_zip_iterator(_CUDA_VSTD::tuple<Iterators...> t);

/*! \p make_zip_iterator creates a \p zip_iterator from
* iterators.
Expand All @@ -226,7 +229,7 @@ inline _CCCL_HOST_DEVICE zip_iterator<thrust::tuple<Iterators...>> make_zip_iter
* \see zip_iterator
*/
template <typename... Iterators>
inline _CCCL_HOST_DEVICE zip_iterator<thrust::tuple<Iterators...>> make_zip_iterator(Iterators... its);
inline _CCCL_HOST_DEVICE zip_iterator<_CUDA_VSTD::tuple<Iterators...>> make_zip_iterator(Iterators... its);

/*! \} // end fancyiterators
*/
Expand Down

0 comments on commit e20f832

Please sign in to comment.