Skip to content

Conversation

@rarutyun
Copy link
Contributor

@rarutyun rarutyun commented Aug 25, 2025

The link to the proposal

Implementing Iterator-based algorithms only. Ranges-based implementation is going on separately.

There are no breaking changes. All the breaking changes in C++ standard come into std::ranges namespace but even they are irrelevant to oneDPL because we implement list-initialization enabling right away, so there is no template parameters swapping

There are two oversights for P2248:

  • find_last was not included (see this paper). However, it's irrelevant for Iterator-based algorithms because find_last exists in std::ranges: namespace only
  • uninitialized_fill was not included (see this paper. However, it's not included for C++26 yet. I've implemented that proactively as was requested. There is a NB comment to include this oversight for C++26.

Binary Search-like algorithms from P2248 (e.g., lower_bound, upper_bound, etc.) are not relevant either because our API for those does not have T-like template parameter.

Linked issue: #1508

@akukanov
Copy link
Contributor

  • uninitialized_fill was not included (see this paper. However, it's not included for C++26. We are trying to achieve that but there is no guarantee. The question is do we want to implement it proactively?

Yes. Let's do that for all algorithms, including - if necessary - non-standard ones in oneDPL.

@danhoeflinger
Copy link
Contributor

Is the intention to merge this for milestone 2022.10.0?

@rarutyun
Copy link
Contributor Author

Is the intention to merge this for milestone 2022.10.0?

Whenever we think it's ready

@rarutyun rarutyun force-pushed the rarutyun/implement_p2248r8 branch from d0441d2 to f1b47c6 Compare October 24, 2025 18:43
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.

3 participants