-
Notifications
You must be signed in to change notification settings - Fork 115
RFC for zip_view implementation, for oneDPL C++20 #1931
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
MikeDvorskiy
wants to merge
37
commits into
main
Choose a base branch
from
dev/mdvorski/rfc_zip_view
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 7 commits
Commits
Show all changes
37 commits
Select commit
Hold shift + click to select a range
09bd199
[oneDPL][rfc][zip_view] + draft
MikeDvorskiy b56c860
Update README.md
MikeDvorskiy 761ecb7
Update README.md
MikeDvorskiy 7ef15f4
Update README.md
MikeDvorskiy e792b5b
Update README.md
MikeDvorskiy 786d5c5
Update README.md
MikeDvorskiy 171e5fe
Update README.md
MikeDvorskiy f9a2e45
[oneDPL][rfc][ranges][zip_view] + Implementation design proposal
MikeDvorskiy 4a701fc
+ spelling fix
MikeDvorskiy cc3eac4
+ spelling fix
MikeDvorskiy 52acfac
+Implementation proposal
MikeDvorskiy 526a603
Delete rfcs/experimental/zip_view/README.md
MikeDvorskiy 518aee0
Update README.md
MikeDvorskiy 234dbdb
Update rfcs/proposed/zip_view/README.md
MikeDvorskiy c20ef9f
Update rfcs/proposed/zip_view/README.md
MikeDvorskiy aec760b
Update rfcs/proposed/zip_view/README.md
MikeDvorskiy 9ab570b
Update rfcs/proposed/zip_view/README.md
MikeDvorskiy 300e13c
Update rfcs/proposed/zip_view/README.md
MikeDvorskiy f51297e
Update rfcs/proposed/zip_view/README.md
MikeDvorskiy 4cade93
Update rfcs/proposed/zip_view/README.md
MikeDvorskiy 7b882fb
Update rfcs/proposed/zip_view/README.md
MikeDvorskiy 2e9c98d
Update rfcs/proposed/zip_view/README.md
MikeDvorskiy 214dcde
Update rfcs/proposed/zip_view/README.md
MikeDvorskiy 1f7b132
Update README.md
MikeDvorskiy 720f1d2
Update README.md
MikeDvorskiy 416010b
Update README.md
MikeDvorskiy 28aed7e
Update README.md
MikeDvorskiy 1ce2407
Update README.md
MikeDvorskiy 20d82e8
Update README.md
MikeDvorskiy 87a32a8
Update README.md
MikeDvorskiy c629dff
Update README.md
MikeDvorskiy 68d67f6
Update README.md
MikeDvorskiy 14118c6
Update README.md
MikeDvorskiy e8fcc7c
Update README.md
MikeDvorskiy 13a814f
Update README.md
MikeDvorskiy 8e140b0
Update rfcs/proposed/zip_view/README.md
MikeDvorskiy cc89449
Update README.md
MikeDvorskiy File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# zip_view Support for the oneDPL Range APIs with C++20 | ||
|
||
## Introduction | ||
`std::ranges::zip_view` is powerful utility enables developers to combine two or more ranges into a single view, | ||
where each element is represented as a tuple containing corresponding elements from each input range. | ||
|
||
## Motivations | ||
`std::ranges::zip_view` is a convenient way to combine multiple ranges into a single view, where each element of | ||
the resulting range is a tuple containing one element from each of the input ranges. This can be particularly | ||
useful for iterating over multiple collections in parallel. `std::ranges::zip_view` is introduced starting with C++23, | ||
but there are many users who work with C++20 standard yet. So, oneDPL introduces `oneapi::dpl::ranges::zip_view`, | ||
MikeDvorskiy marked this conversation as resolved.
Show resolved
Hide resolved
|
||
which the same API and functionality as `std::ranges::zip_view`. | ||
MikeDvorskiy marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
### Key Requirements | ||
akukanov marked this conversation as resolved.
Show resolved
Hide resolved
|
||
`oneapi::dpl::ranges::zip_view` should be: | ||
- compilable with C++20 version (minimum) | ||
dmitriy-sobolev marked this conversation as resolved.
Show resolved
Hide resolved
|
||
- API compliant with `std::ranges::zip_view` | ||
MikeDvorskiy marked this conversation as resolved.
Show resolved
Hide resolved
|
||
- random accessible view; the "underlying" views also should be random accessible | ||
dmitriy-sobolev marked this conversation as resolved.
Show resolved
Hide resolved
akukanov marked this conversation as resolved.
Show resolved
Hide resolved
|
||
- in case of a device usage: a device copyable view itself and the "underlying" views also should be device copyable | ||
akukanov marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
`oneapi::dpl::ranges::zip_view::iterator` should be: | ||
- value-swappable (https://en.cppreference.com/w/cpp/named_req/ValueSwappable) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Perhaps we should explicitly add |
||
- convertible to `oneapi::dpl::zip_iterator` | ||
MikeDvorskiy marked this conversation as resolved.
Show resolved
Hide resolved
|
||
- abble to use with the non-range algorithms | ||
MikeDvorskiy marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
### Performance | ||
TBD |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.