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

P2988 R4 std::optional<T&> #1661

Open
wg21bot opened this issue Oct 16, 2023 · 5 comments
Open

P2988 R4 std::optional<T&> #1661

wg21bot opened this issue Oct 16, 2023 · 5 comments
Labels
B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 C++26 Targeted at C++26 IS Ship vehicle: IS LEWG Library Evolution ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting size - medium paper size estimate
Milestone

Comments

@wg21bot
Copy link
Collaborator

wg21bot commented Oct 16, 2023

P2988R0 std::optional<T&> (Steve Downey)

@wg21bot wg21bot added the LEWG Library Evolution label Oct 16, 2023
@wg21bot wg21bot added this to the 2023-telecon milestone Oct 16, 2023
@cor3ntin cor3ntin changed the title P2988 R0 std::optional&lt;T&amp;&gt; P2988 R0 std::optional<T&> Oct 16, 2023
@inbal2l inbal2l added IS Ship vehicle: IS C++26 Targeted at C++26 B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting size - medium paper size estimate labels Oct 16, 2023
@inbal2l inbal2l changed the title P2988 R0 std::optional<T&> P2988 R0 std::optional<T&> (A) Oct 18, 2023
@inbal2l inbal2l added the scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review label Oct 19, 2023
@inbal2l inbal2l changed the title P2988 R0 std::optional<T&> (A) P2988 R0 std::optional<T&> Oct 19, 2023
@inbal2l inbal2l removed the scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review label Nov 20, 2023
@inbal2l inbal2l modified the milestones: 2023-telecon, 2024-telecon Jan 5, 2024
@inbal2l inbal2l 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 Jan 5, 2024
@inbal2l
Copy link
Collaborator

inbal2l commented Jan 6, 2024

2024-01-02 Library Evolution Telecon

P2988R0: std::optional<T&>

2024-01-02 Library Evolution Telecon Minutes

Champion: Steve Downey

Chair: Billy Baker

Minute Taker: Ben Craig

Summary

References mentioned during the discussion:
references mentioned above:

  1. https://thephd.dev/to-bind-and-loose-a-reference-optional
  2. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2070r0.pdf
  3. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1175r0.html

The author will explore and add information on:

  1. Explore compiler failure vs. compiler error for assignment op
  2. Add references to analysis of the discussion of “Assign-through” optional direction, and the “Rebind” optional direction (https://wg21.link/p1683r0)
  3. Consider a separate name then std::optional to the "ref" version?
  4. Explore named function for separating between the cases above.
  5. Add a feature test macro.
  6. Explore and add examples for "const" behaviour.

No polls were taken.

Next Steps

The room was generally supportive of the proposal but would like the author to come back with more rationale for the (already settled) design decisions and further exploration of the open topics mentioned above.
Ville and Barry volunteered to help the author.
We will see the paper again in LEWG.

@wg21bot
Copy link
Collaborator Author

wg21bot commented Jan 17, 2024

P2988R1 std::optional<T&> (Steve Downey, Peter Sommerlad)

@wg21bot wg21bot removed the needs-revision Paper needs changes before it can proceed label Jan 17, 2024
@wg21bot wg21bot changed the title P2988 R0 std::optional<T&> P2988 R1 std::optional Jan 17, 2024
@wg21bot wg21bot changed the title P2988 R1 std::optional P2988 R1 std::optional&lt;T&&gt; Jan 17, 2024
@inbal2l inbal2l added the ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting label Jan 17, 2024
@inbal2l inbal2l changed the title P2988 R1 std::optional&lt;T&&gt; P2988 R1 std::optional<&T> Jan 17, 2024
@inbal2l inbal2l changed the title P2988 R1 std::optional<&T> P2988 R1 std::optional<T&> Jan 17, 2024
@inbal2l inbal2l added the scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review label Jan 18, 2024
@wg21bot
Copy link
Collaborator Author

wg21bot commented Feb 16, 2024

P2988R3 std::optional<T&> (Steve Downey, Peter Sommerlad)

@wg21bot wg21bot changed the title P2988 R1 std::optional<T&> P2988 R3 std::optional&lt;T&amp;&gt; Feb 16, 2024
@cor3ntin cor3ntin changed the title P2988 R3 std::optional&lt;T&amp;&gt; P2988 R3 std::optional<T&> Feb 16, 2024
@ben-craig
Copy link
Collaborator

ben-craig commented Mar 22, 2024

2024-03-22 Library Evolution Tokyo

P3199R0: Choices for make_optional and value()

2024-03-22 Library Evolution Tokyo Minutes

Champion: Steve Downey
Chair: Ben Craig / Nevin Liber
Minute Taker: Robert Leahy

Summary

POLL: Block progress on P2988 until we change make_optional in service of optional<T&>

Attendance: 20+10

# of Authors: 1

Outcome: No objection to unanimnous dissent (rejected)

POLL: Make value_or return T in the std::optional<T&> specialization in P2988 (std::optional<T&>)

SF WF N WA SA
7 2 3 3 1

Attendance: 20+10

# of Authors: 1

Author Position: SF

Outcome: Very weak consensus

WF: Motivation could be improved
N: If this is what gets consensus, then I am voting against the whole paper
WA: Not against the proposal as a whole
SA: Not a blocker for the whole proposal

POLL: Make value_or return T& in the std::optional<T&> specialization in P2988 (std::optional<T&>)

SF WF N WA SA
1 6 1 5 4

Attendance: 20+10

# of Authors: 1

Author Position:

Outcome: No consensus

POLL: Remove value_or from the std::optional<T&> specialization in P2988 (std::optional<T&>)

SF WF N WA SA
0 2 7 5 6

Attendance: 20+10

# of Authors: 1

Author Position: Consensus agains

Outcome: Consensus against

Next Steps

Having value_or return T has the most consensus of the options, but additional motivation may be in order considering the consensus was so weak. The feeling of the room is likely to change from poll to poll.

@inbal2l inbal2l added the needs-revision Paper needs changes before it can proceed label Mar 29, 2024
@inbal2l inbal2l removed the scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review label Mar 29, 2024
@wg21bot
Copy link
Collaborator Author

wg21bot commented Apr 17, 2024

P2988R4 std::optional<T&> (Steve Downey, Peter Sommerlad)

@wg21bot wg21bot removed the needs-revision Paper needs changes before it can proceed label Apr 17, 2024
@wg21bot wg21bot changed the title P2988 R3 std::optional<T&> P2988 R4 std::optional&lt;T&amp;&gt; Apr 17, 2024
@cor3ntin cor3ntin changed the title P2988 R4 std::optional&lt;T&amp;&gt; P2988 R4 std::optional<T&> Apr 17, 2024
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++26 Targeted at C++26 IS Ship vehicle: IS LEWG Library Evolution ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting size - medium paper size estimate
Projects
Status: No status
Development

No branches or pull requests

3 participants