Skip to content

RFC for zip_view implementation, for oneDPL C++20 - #1931

Merged
MikeDvorskiy merged 46 commits into
mainfrom
dev/mdvorski/rfc_zip_view
Feb 25, 2026
Merged

RFC for zip_view implementation, for oneDPL C++20#1931
MikeDvorskiy merged 46 commits into
mainfrom
dev/mdvorski/rfc_zip_view

Conversation

@MikeDvorskiy

@MikeDvorskiy MikeDvorskiy commented Nov 4, 2024

Copy link
Copy Markdown
Contributor

The proposal to implement zip_view in oneDPL. A part of the general RFC discussion #1944 about implementing useful C++23 views.

@MikeDvorskiy
MikeDvorskiy marked this pull request as draft November 4, 2024 16:54
@MikeDvorskiy
MikeDvorskiy marked this pull request as ready for review November 19, 2024 17:06
Comment thread rfcs/proposed/zip_view/README.md Outdated
Comment thread rfcs/proposed/zip_view/README.md Outdated
Comment thread rfcs/proposed/zip_view/README.md Outdated
Comment thread rfcs/proposed/zip_view/README.md Outdated
Comment thread rfcs/proposed/zip_view/README.md Outdated

@dmitriy-sobolev dmitriy-sobolev left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is one question regarding the conversions of the iterators. The rest are minor stylistic and wording corrections.

Comment thread rfcs/proposed/zip_view/README.md Outdated
Comment thread rfcs/proposed/zip_view/README.md Outdated
Comment thread rfcs/proposed/zip_view/README.md Outdated
Comment thread rfcs/proposed/zip_view/README.md Outdated
Comment thread rfcs/proposed/zip_view/README.md Outdated
Comment thread rfcs/proposed/zip_view/README.md Outdated
Comment thread rfcs/proposed/zip_view/README.md Outdated
Comment thread rfcs/proposed/zip_view/README.md Outdated
Comment thread rfcs/proposed/zip_view/README.md Outdated
Comment thread rfcs/proposed/zip_view/README.md Outdated
MikeDvorskiy and others added 4 commits December 17, 2024 16:23
Co-authored-by: Dmitriy Sobolev <Dmitriy.Sobolev@intel.com>
Co-authored-by: Dmitriy Sobolev <Dmitriy.Sobolev@intel.com>
Co-authored-by: Dmitriy Sobolev <Dmitriy.Sobolev@intel.com>
Co-authored-by: Dmitriy Sobolev <Dmitriy.Sobolev@intel.com>
@akukanov akukanov modified the milestones: 2022.10.0, 2022.11.0 Aug 5, 2025
@akukanov akukanov modified the milestones: 2022.11.0, 2022.12.0 Nov 11, 2025
@MikeDvorskiy
MikeDvorskiy requested a review from Copilot February 10, 2026 15:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This RFC proposes implementing zip_view for oneDPL's C++20 range APIs, providing functionality equivalent to C++23's std::ranges::zip_view but with device copyability support and compatibility for C++20 users.

Changes:

  • Introduces RFC documentation for oneapi::dpl::ranges::zip_view implementation
  • Defines key requirements including C++20 compatibility, API compliance with C++23 standard, and device copyability
  • Proposes using oneapi::dpl::__internal::tuple instead of std::tuple to address technical limitations and ensure device copyability
Comments suppressed due to low confidence (3)

rfcs/proposed/zip_view/README.md:1

  • Corrected spelling of 'Considiration' to 'Consideration'.
# zip_view Support for the oneDPL Range APIs with C++20

rfcs/proposed/zip_view/README.md:1

  • Grammar error: 'another' should be 'other' when used with plural noun 'issues'.
# zip_view Support for the oneDPL Range APIs with C++20

rfcs/proposed/zip_view/README.md:1

  • Grammar error: Use 'an' instead of 'a' before words starting with a vowel sound. Should be 'an indirectly writable requirement'.
# zip_view Support for the oneDPL Range APIs with C++20

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@danhoeflinger

Copy link
Copy Markdown
Contributor

@copilot can you fix the spelling error you identified as low confidence comment?

rfcs/proposed/zip_view/README.md:1

Corrected spelling of 'Considiration' to 'Consideration'.

danhoeflinger
danhoeflinger previously approved these changes Feb 10, 2026

@danhoeflinger danhoeflinger left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@akukanov

Copy link
Copy Markdown
Contributor

The key problem that still needs to be addressed is the choice of the namespace.

We should not place the new API into oneapi::dpl::ranges before updating the specification. At the same time, we already have oneapi::dpl::experimental::ranges::zip_view. We can change the implementation of the latter (perhaps only for C++20 and higher) - but then we need to be sure that that implementation also works with other experimental views and range algorithms. We can use another namespace within oneapi::dpl - if there is a good idea how to name it. We can change the API name to include some indication that it is not yet fully supported, but we probably do not want to. Are there other options to consider?

@MikeDvorskiy

Copy link
Copy Markdown
Contributor Author

The key problem that still needs to be addressed is the choice of the namespace.

We should not place the new API into oneapi::dpl::ranges before updating the specification. At the same time, we already have oneapi::dpl::experimental::ranges::zip_view. We can change the implementation of the latter (perhaps only for C++20 and higher) - but then we need to be sure that that implementation also works with other experimental views and range algorithms. We can use another namespace within oneapi::dpl - if there is a good idea how to name it. We can change the API name to include some indication that it is not yet fully supported, but we probably do not want to. Are there other options to consider?

oneapi::dpl::experimental::ranges::zip_view
oneapi::dpl::experimental::ranges::views::zip
oneapi::dpl::experimental::views::zip

danhoeflinger
danhoeflinger previously approved these changes Feb 20, 2026

@danhoeflinger danhoeflinger left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with namespace changes

@akukanov akukanov left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved after making some cosmetic changes and adding a paragraph about the experimental stage.

When the RFC is moved to the experimental status, productization conditions (aka "exit criteria") will need to be described.

@danhoeflinger danhoeflinger left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with the changes

@MikeDvorskiy
MikeDvorskiy merged commit 0782676 into main Feb 25, 2026
2 checks passed
@MikeDvorskiy
MikeDvorskiy deleted the dev/mdvorski/rfc_zip_view branch February 25, 2026 10:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants