cplusplus / papers

ISO/IEC JTC1 SC22 WG21 paper scheduling and management
616 stars 19 forks source link

P2988 R5 std::optional #1661

Open wg21bot opened 8 months ago

wg21bot commented 8 months ago

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

inbal2l commented 6 months ago

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 commented 5 months ago

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

wg21bot commented 4 months ago

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

ben-craig commented 3 months ago

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.

wg21bot commented 2 months ago

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

wg21bot commented 1 month ago

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