Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deprecate thrust iterator traversal #3562

Open
bernhardmgruber opened this issue Jan 28, 2025 · 1 comment
Open

Deprecate thrust iterator traversal #3562

bernhardmgruber opened this issue Jan 28, 2025 · 1 comment

Comments

@bernhardmgruber
Copy link
Contributor

bernhardmgruber commented Jan 28, 2025

From my understanding (by reading the Boost.Iterator docs) iterator traversal is distinct from element access, so a proxy iterator (not returning a T&) can also be declared to be random access. E.g. a counting iterator is a input_iterator, because its value type is not a reference. However, this concept is obsolete in C++20, where iterator tags were replaced in favor of iterator concepts.

We should move any thrust iterator traversal trait into a detail namespace and add deprecated public aliases. Users should move away from this functionality.

We should replace iterator traversal by the C++20 iterator concepts in the long run.

@github-project-automation github-project-automation bot moved this to Todo in CCCL Jan 28, 2025
@bernhardmgruber bernhardmgruber changed the title Move any thrust iterator traversal trait into a detail namespace and add deprecated public aliases Deprecate thrust iterator traversal Jan 28, 2025
@bernhardmgruber
Copy link
Contributor Author

Some facilities in Thrust query the iterator traversal to select between code paths. Before we can remove this facility we should make sure the C++20 iterator concepts are up and running, for which we do not have enough time for the CCCL 2.8 release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Todo
Development

No branches or pull requests

1 participant