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

Merged
merged 3 commits into from
Jul 15, 2025

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 2 times, most recently 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.

@tkoeppe tkoeppe force-pushed the motions-2025-06-lwg-6 branch from d90af05 to e147ee4 Compare July 15, 2025 15:07
@tkoeppe tkoeppe force-pushed the motions-2025-06-lwg-6 branch 2 times, most recently from b89a524 to 58073e1 Compare July 15, 2025 16:19
@tkoeppe tkoeppe force-pushed the motions-2025-06-lwg-6 branch from 58073e1 to da9555a Compare July 15, 2025 17:16
@tkoeppe tkoeppe merged commit 3c3d131 into cplusplus:main Jul 15, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
2 participants
close