Skip to content

P3179R9 C++ parallel range algorithms #7987

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Eisenwave
Copy link
Member

Closes #7943.
Also closes cplusplus/papers#1815.

Took me a few minutes to draft this up. Not quite done yet.

I'm not sure who's up for reviewing this, but there are quite a lot of FIXMEs in here (some non-editorial) which will have to be addressed. I could need some feedback on those.

@tkoeppe
Copy link
Contributor

tkoeppe commented Jun 22, 2025

Thanks a lot!

@Eisenwave Eisenwave force-pushed the motions-2025-06-lwg-6 branch from 6e140d5 to e835196 Compare June 23, 2025 11:12
@Eisenwave Eisenwave force-pushed the motions-2025-06-lwg-6 branch from e835196 to 56c2740 Compare June 23, 2025 16:52
@Eisenwave Eisenwave marked this pull request as ready for review June 23, 2025 16:52
@Eisenwave
Copy link
Member Author

Eisenwave commented Jun 23, 2025

Have fun reviewing this 3000-line diff, lol.

Some further notes for reviewers:

  • I still don't know what the exposidnc and other nc macros do, so I've not used any of them anywhere. It's an easy fix to use those if need be.
  • There are a bunch of FIXMEs, some non-editorial. Those should be resolved before merging. However, my impression is that it would be much easier to first review the changes of the paper EXACTLY as is, prior to starting any work on fix-ups.
  • I have done this change by first making the <algorithm> synopsis, then copying and pasting into the descriptions below and adding ranges::. If there is something wrong in the synopsis, it will be in the descriptions too, and if you're proof-reading the declarations in the descriptions to see if they match the synopsis, you're wasting your time.
  • I have created a tool that automatically transforms an existing ranges:: declaration into one that also takes an execution-policy. If I did something wrong with this tool, the transformation is almost certainly wrong everywhere.

@Eisenwave
Copy link
Member Author

Eisenwave commented Jun 23, 2025

I have received confirmation from one of the authors that due to an editorial oversight

  • partition,
  • remove, and
  • remove_if

are missing requires permutable.

However, this defect is non-editorial and will have to be addressed in an LWG issue.

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

Successfully merging this pull request may close these issues.

[2025-06 LWG Motion 6] P3179R9 Parallel Range Algorithms P3179 R8 C++ parallel range algorithms
2 participants