From cea61a3410fdea796154dcd9157e010659aab837 Mon Sep 17 00:00:00 2001 From: Michael Schellenberger Costa Date: Thu, 30 Jan 2025 16:48:09 +0100 Subject: [PATCH] Use a differrent implementation for `tuple_of_iterator_references` to tuple conversion (#3609) --- .../include/cuda/std/detail/libcxx/include/tuple | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/libcudacxx/include/cuda/std/detail/libcxx/include/tuple b/libcudacxx/include/cuda/std/detail/libcxx/include/tuple index 6ff1039e61b..47f8b16222b 100644 --- a/libcudacxx/include/cuda/std/detail/libcxx/include/tuple +++ b/libcudacxx/include/cuda/std/detail/libcxx/include/tuple @@ -891,10 +891,19 @@ public: enable_if_t<__is_tuple_of_iterator_references<_TupleOfIteratorReferences>::value, int> = 0, enable_if_t<(tuple_size<_TupleOfIteratorReferences>::value == sizeof...(_Tp)), int> = 0> _LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX14 tuple(_TupleOfIteratorReferences&& __t) - : tuple(_CUDA_VSTD::forward<_TupleOfIteratorReferences>(__t).template __to_tuple<_Tp...>( - __make_tuple_indices_t())) + : tuple(_CUDA_VSTD::forward<_TupleOfIteratorReferences>(__t), + typename __make_tuple_indices::type{}) {} +private: + template ::value, int> = 0> + _LIBCUDACXX_HIDE_FROM_ABI _CCCL_CONSTEXPR_CXX14 tuple(_TupleOfIteratorReferences&& __t, __tuple_indices<_Indices...>) + : tuple(_CUDA_VSTD::get<_Indices>(_CUDA_VSTD::forward<_TupleOfIteratorReferences>(__t))...) + {} + +public: template , enable_if_t::value, int> = 0,