Skip to content
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

P2302 std::ranges::contains #988

Closed
wg21bot opened this issue Feb 22, 2021 · 9 comments · Fixed by cplusplus/draft#5643
Closed

P2302 std::ranges::contains #988

wg21bot opened this issue Feb 22, 2021 · 9 comments · Fixed by cplusplus/draft#5643
Labels
B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 C++23 Targeted at C++23 IS Ship vehicle: IS LWG Library plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. ranges std::ranges tentatively-ready-for-plenary Reviewed between meetings; ready for a vote.
Milestone

Comments

@wg21bot
Copy link
Collaborator

wg21bot commented Feb 22, 2021

P2302R0 Prefer std::ranges::contains over std::basic_string_view::contains (Christopher Di Bella)

@wg21bot wg21bot added the LEWG Library Evolution label Feb 22, 2021
@wg21bot wg21bot added this to the 2021-telecon milestone Feb 22, 2021
@brycelelbach brycelelbach added the ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting label Feb 23, 2021
@ben-craig
Copy link
Collaborator

P2302R0: Prefer std::ranges::contains over std::basic_string_view::contains

P2302R0: Prefer std::ranges::contains over std::basic_string_view::contains

2021-03-16 Library Evolution Telecon Minutes

Chair: Ben Craig

Champion: Christopher Di Bella

Minute Taker: Inbal Levi

SUMMARY:
Ease of use with std::string is important, and removing that would be a usability regression. String literal behavior is different, and would include the null terminator. The 'contains' proposal does make an overload of two algorithms, element containment and subsequence containment. std::path may make things ambiguous. Any type where a value type has a range could be ambiguous.

OUTCOME:

POLL: Request paper to create or update LEWG policy on when to prefer free functions over member functions.

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
9 9 2 4 1

Attendance: 29

# of Authors: 1

Author Position: SF

Outcome: Consensus in favor

A: Don't want to spend the time discussing policies that we will have many exceptions to.
A: Varies enough on a case-by-case basis. Not convinced by bloating argument.
A: Unconvinced that we have discussed enough on whether such a policy makes sense.

POLL: Add free function template algorithms that test for element containment and/or range containment

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
9 14 2 0 0

Attendance: 29

# of Authors: 1

Author Position: SF

Outcome: Consensus in favor

POLL: Remove contains member functions from basic_string

Outcome: Did not take, author conceded point

ACTION: Come back with a paper that is adding the algorithms, but leaves string containment as is.

@ben-craig ben-craig added needs-revision Paper needs changes before it can proceed and removed ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting labels Mar 19, 2021
@brycelelbach brycelelbach added ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 C++23 Targeted at C++23 IS Ship vehicle: IS ranges std::ranges labels Mar 22, 2021
@inbal2l
Copy link
Collaborator

inbal2l commented Nov 9, 2021

R1 of the paper was seen by SG9 on 2021-11-8. (Full Minutes)
Fixes requested:

  • Distinguish between "search" and "find" versions (the search is for subranges as well), the name suggested by the author and approved by SG9 is "contains_subrange".
  • Add implementation experience info to the paper. (links in the chat)

Polls

POLL: Modify "P2302R1 std::ranges::contains" by changing the name to contains_subrange for the search versions, and adding implementation experience to the paper. Then send the revised paper to LEWG for C++23

Outcome: No Objection To Unanimous Consent

Attendance: 11

# of Authors: 1

Outcome

SG9 forwarded to LEWG for C++23, with the following changes:

  • Have distinguished names for the "search" overloads (by author's proposal: contains_subrange)
  • Add a section describing implementation experience to the paper (if partial, elaborate on what is implemented).

@jensmaurer jensmaurer removed this from the 2021-telecon milestone Nov 12, 2021
@wg21bot
Copy link
Collaborator Author

wg21bot commented Nov 26, 2021

P2302R1 std::ranges::contains (Christopher Di Bella)

@wg21bot wg21bot removed the needs-revision Paper needs changes before it can proceed label Nov 26, 2021
@wg21bot wg21bot added this to the 2021-telecon milestone Nov 26, 2021
@inbal2l inbal2l added the needs-revision Paper needs changes before it can proceed label Nov 26, 2021
@cor3ntin cor3ntin changed the title P2302 Prefer std::ranges::contains over std::basic_string_view::contains P2302 std::ranges::contains Dec 6, 2021
@wg21bot
Copy link
Collaborator Author

wg21bot commented Dec 18, 2021

P2302R2 std::ranges::contains (Christopher Di Bella)

@wg21bot wg21bot removed the needs-revision Paper needs changes before it can proceed label Dec 18, 2021
@inbal2l inbal2l added ready-for-library-evolution-mailing-list-review This paper needs to be discussed on the Library Evolution mailing list and removed ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting labels Dec 18, 2021
@brycelelbach brycelelbach added expedited-library-evolution-electronic-poll Papers that were reviewed on the mailing list and then advanced directly to electronic polling. size - small paper size estimate scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review labels Dec 21, 2021
@jensmaurer jensmaurer modified the milestones: 2021-telecon, 2022-telecon Jan 1, 2022
@brycelelbach
Copy link

brycelelbach commented Jan 17, 2022

@brycelelbach brycelelbach removed ready-for-library-evolution-mailing-list-review This paper needs to be discussed on the Library Evolution mailing list scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review labels Jan 17, 2022
@brycelelbach brycelelbach added the ready-for-library-evolution-electronic-poll This paper needs to undergo a Library Evolution electronic poll label Jan 17, 2022
@wg21bot
Copy link
Collaborator Author

wg21bot commented Jan 22, 2022

P2302R3 std::ranges::contains (Christopher Di Bella)

@brycelelbach brycelelbach added scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review and removed scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review labels Feb 1, 2022
@cor3ntin
Copy link

cor3ntin commented Feb 16, 2022

2022-01 Library Evolution Electronic Poll Outcomes

Send [P2302R2] (ranges::contains) to Library Working Group for C++23, classified as an addition ([P0592R4] bucket 3 item)

SF F N A SA
17 16 0 0 0

Unanimous consensus in favor.

@cor3ntin cor3ntin added LWG Library and removed LEWG Library Evolution ready-for-library-evolution-electronic-poll This paper needs to undergo a Library Evolution electronic poll scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review expedited-library-evolution-electronic-poll Papers that were reviewed on the mailing list and then advanced directly to electronic polling. labels Feb 16, 2022
@brycelelbach brycelelbach added expedited-library-evolution-electronic-poll Papers that were reviewed on the mailing list and then advanced directly to electronic polling. lwg-pending LWG Chair needs to disposition labels Feb 23, 2022
@JeffGarland
Copy link
Member

JeffGarland commented Apr 15, 2022

LWG reviewed and approved 2022-04-15

https://wiki.edg.com/bin/view/Wg21telecons2022/P2303-20220415

poll: adopt P2302r4 std::ranges contains for C++23 (with Jeff checking minor update) -- checked 2022-04-17

F A N
11 0 0

@JeffGarland JeffGarland added tentatively-ready-for-plenary Reviewed between meetings; ready for a vote. and removed lwg-pending LWG Chair needs to disposition size - small paper size estimate expedited-library-evolution-electronic-poll Papers that were reviewed on the mailing list and then advanced directly to electronic polling. labels Apr 17, 2022
@wg21bot
Copy link
Collaborator Author

wg21bot commented Apr 25, 2022

P2302R4 std::ranges::contains (Christopher Di Bella)

@cor3ntin cor3ntin added the plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. label Jul 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 C++23 Targeted at C++23 IS Ship vehicle: IS LWG Library plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. ranges std::ranges tentatively-ready-for-plenary Reviewed between meetings; ready for a vote.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants