[SYCLomatic]Remove reverse_iterator from partition implementations #2350
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Partition implementations should not use
std::reverse_iterator
, because this disallows usage of sycl buffer iterator-like inputs returned fromoneapi::dpl::[begin,end]
. MSVC STL runs into compiler errors for reverse_iterator of this iterator-like type.Without a reverse iterator, we no longer can gain advantage from providing a non-stable partition implementation, so we go back to having a unified implementation (these were separated in #2215). If in the future oneDPL provides a reverse_iterator which is compatible with sycl buffer iterator-like types, we can improve this implementation by removing this extra copy call, and extra tmp data allocation. However, for now I think this is the best we can do.