hpx
hpx copied to clipboard
Implement and integrate sized range concepts for parallel container algorithms
Fixes #6602 (Partially)
Proposed Changes
This is the very first of the many PRs to come to align HPX's parallel container algorithms implementation to the standard. This involved -
- Implementing range concepts -
is_input_range,is_forward_range,is_bidirectional_range,is_random_access_range,is_sized_rangewhich modelinput_range,forward_range,bidirectional_range,random_access_range,sized_rangefrom the C++20 standard (see file -libs/core/iterator_support/tests/unit/is_range.cpp) - In case of parallel range algorithms, iterators are required to satisfy
is_random_access_iterator_v, sentinels -is_sized_sentinel_for, ranges -is_sized_range_v,is_random_access_range_v. - Tests are modified to satisfy the above concepts.
Any background context you want to provide?
Checklist
Not all points below apply to all pull requests.
- [ ] I have added a new feature and have added tests to go along with it.
- [ ] I have fixed a bug and have added a regression test.
- [ ] I have added a test using random numbers; I have made sure it uses a seed, and that random numbers generated are valid inputs for the tests.
Can one of the admins verify this patch?