Implement permutation view for external sort. #4920
Merged
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.
This pull request implements the
permutation_view
class. Apermutation_view
provides a view over an underlying range that is permuted by indirecting with a given index range. It is required that the permutation range is the same size as the data range and that it contain the values 0, 1, ..., N-1, in arbitrary order, where N is the size of the data range.Example:
The implementation uses
iterator_facade
to realize a C++20 standards conformant iterator and so thatpermutation_view
satisfies the appropriate C++20 ranges concepts.The
permutation_view
class has been tested withvar_length_view
. Various range and iterator concepts are also tested.(This PR also cleans up the documentation and the structure of the
var_length_view
class.)[sc-43635]
TYPE: IMPROVEMENT
DESC: Implement permutation view for external sort.