hpx icon indicating copy to clipboard operation
hpx copied to clipboard

Implement and integrate sized range concepts for parallel container algorithms

Open sleepingeight opened this issue 2 weeks ago • 1 comments

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 -

  1. Implementing range concepts - is_input_range, is_forward_range, is_bidirectional_range, is_random_access_range, is_sized_range which model input_range, forward_range, bidirectional_range, random_access_range, sized_range from the C++20 standard (see file - libs/core/iterator_support/tests/unit/is_range.cpp)
  2. 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.
  3. 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.

sleepingeight avatar Dec 09 '25 17:12 sleepingeight

Can one of the admins verify this patch?

StellarBot avatar Dec 09 '25 17:12 StellarBot