You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
IIRC, @gevtushenko pointed out that the special treatment for NVRTC is necessary, because there may be no standard library around to supply std::iterator_traits. However, this seems like a problem that should be solved by libcu++ instead. Furthermore, we use plain std::iterator_traits in a lot of places without this special handling.
We cannot just use ::cuda::std::iterator_traits directly, because a user is free to specialize std::iterator_traits for their iterator type, which currently is not detected by ::cuda::std::iterator_traits.
Describe the solution you'd like
I want to use only ::cuda::std::iterator_traits<T> and it should pick up a specialization of std::iterator_traits<T> when it exists.
Describe alternatives you've considered
No response
Additional context
No response
The text was updated successfully, but these errors were encountered:
bernhardmgruber
changed the title
[FEA]: libcu++ iterator traits should pick up std iterator_trait specializations
[FEA]: libcu++ iterator_traits should pick up std iterator_traits specializations
Jul 2, 2024
Is this a duplicate?
Area
libcu++
Is your feature request related to a problem? Please describe.
In
cub/util_type.cuh
we have something like:IIRC, @gevtushenko pointed out that the special treatment for NVRTC is necessary, because there may be no standard library around to supply
std::iterator_traits
. However, this seems like a problem that should be solved by libcu++ instead. Furthermore, we use plainstd::iterator_traits
in a lot of places without this special handling.We cannot just use
::cuda::std::iterator_traits
directly, because a user is free to specializestd::iterator_traits
for their iterator type, which currently is not detected by::cuda::std::iterator_traits
.Describe the solution you'd like
I want to use only
::cuda::std::iterator_traits<T>
and it should pick up a specialization ofstd::iterator_traits<T>
when it exists.Describe alternatives you've considered
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: