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

P3019 R12 Vocabulary Types for Composite Class Design #1680

Open
wg21bot opened this issue Oct 16, 2023 · 24 comments · May be fixed by cplusplus/draft#7466
Open

P3019 R12 Vocabulary Types for Composite Class Design #1680

wg21bot opened this issue Oct 16, 2023 · 24 comments · May be fixed by cplusplus/draft#7466
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 LWG Library size - medium paper size estimate
Milestone

Comments

@wg21bot
Copy link
Collaborator

wg21bot commented Oct 16, 2023

P3019R0 Vocabulary Types for Composite Class Design (Jonathan Coe, Antony Peacock, Sean Parent)

@wg21bot wg21bot added LEWG Library Evolution LWG Library labels Oct 16, 2023
@wg21bot wg21bot added this to the 2023-telecon milestone Oct 16, 2023
@cor3ntin cor3ntin added LEWGI Library Evolution Incubator ready-for-library-evolution-mailing-list-review This paper needs to be discussed on the Library Evolution mailing list and removed LWG Library labels Oct 16, 2023
@inbal2l inbal2l added ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting 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 size - medium paper size estimate and removed LEWGI Library Evolution Incubator ready-for-library-evolution-mailing-list-review This paper needs to be discussed on the Library Evolution mailing list labels Oct 16, 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 17, 2023
@jbcoe
Copy link

jbcoe commented Nov 9, 2023

Draft and reference implementation at https://github.com/jbcoe/value_types

@ben-craig
Copy link
Collaborator

ben-craig commented Nov 11, 2023

Library Evolution Meeting Kona 2023-11-08

P3019R1: Vocabulary Types for Composite Class Design

2023-11-08 Library Evolution Kona Minutes

Champion: Jonathan Coe

Chair: Inbal Levi / Billy Baker

Minute Taker: Eddie Nolan, Andreas Weis

Summary

POLL: Add "operator()", "operator[]" to the proposed classes.

SF F N A SA
0 0 10 4 5

Attendance: 19 IP + 8 R

# of Authors: 2

Authors’ position: 1 SA 1 WA

Outcome: Consensus Agains

POLL: Add "emplace" to the proposed classes.

SF F N A SA
0 1 1 11 6

Attendance: 19 IP + 8 R

# of Authors: 2

Authors’ position: 2xA

Outcome: Consensus Against

Favor: Have to spell the type if emplace is not there.

POLL: We want to support types that have comparison operators incompatible with regularity

SF F N A SA
0 9 5 2 2

Attendance: 19 IP + 8 R

# of Authors: 2

Authors’ position: 2x WF

Outcome: Not consensus for a change

IL: We need to take the following poll next meeting (POLL: Remove "noexcept" from all the functions apart from *, ->, move CTOR, and move assignment)

Next Steps

The paper made progress. Authors are to provide a new revision which will be seen again during the Kona meeting.

Library Evolution Meeting Kona 2023-11-10

P3019R02: Vocabulary Types for Composite Class Design

2023-11-10 Library Evolution Kona Minutes

Champion: Jonathan Coe

Chair: Ben Craig, Inbal Levi

Minute Taker: Eddie Nolan, Andreas Weis

Summary

POLL: Remove preconditions for move, copy, swap, move assign, assign, comparisons, and std::hash for indirect and polymorphic_value as appropriate.

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
3 5 0 8 10

Attendance: 32 IP + 6 R
# of Authors: 2
Author Position: 2xSA
Outcome: Weak consensus against

POLL: Require T of polymorphic to be a polymorphic base class (which will prevent the template parameter from being an incomplete type)_

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
1 0 4 6 17

Attendance: 31 IP + 4 R
# of Authors: 2
Author Position: 2XSA
Outcome: Strong consensus against

SF: Seems we love polymorphic<int> too much

POLL: Approve design of P3019R2 (Vocabulary Types for Composite Class Design), except ensure the swap noexcept specification matches std::vector and remove the std::optional specialization.

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
10 12 2 2 0

Attendance: 32 IP + 4 R
# of Authors: 2
Author Position: 2xSF
Outcome: Strong Consensus in favor

WA: Can't vote in favor of the approach that makes the valueless state unsafe

Next Steps

The design was approved with the proposed changes in the polls. Minor fixes are still required, authors will work on this and present the change log at the next meeting.

The paper wording and final design will be reviewed in a telecon.

@inbal2l inbal2l changed the title P3019 R0 Vocabulary Types for Composite Class Design P3019 R1 Vocabulary Types for Composite Class Design Nov 16, 2023
@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 scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review labels Nov 21, 2023
@inbal2l
Copy link
Collaborator

inbal2l commented Nov 21, 2023

Library Evolution Telecon 2023-11-21

P3019R3: Vocabulary Types for Composite Class Design

2023-11-21 Library Evolution Telecon

Champion: Jonathan Coe
Chair: Inbal Levi
Minute Taker: Ben Craig

Summary

We covered change log for R3 (and before). We will see the paper again with the resolution for the topics:

  • Investigate “valueless” state, include suggestions on what are the alternatives for handling “valueless” (apart from the approach in the paper) and come back to LEWG with a resolution (options are: allow moving “valueless”, assignment operator, etc.)
  • Explore: Comparison operators of “indirect” should return “bool” vs. comparison operator of “indirect” should return what the underlying type does (and regularity).

Next meeting we should also discuss on the topics (and weather they can be added later):

  • Should there be a make_indirect?
  • providing nontype constructors as alternatives to allocator_tag constructors

POLL: Investigate “explicitness” of the CTORS for “indirect” and “polymorphic”, and come back to LEWG with a resolution.

SF F N A SA
3 1 5 7 1

Outcome: Weak consensus against (no need for additional exploration from the authors)
# of Authors: 2
Authors’ position: 2xN
Attendance: 30

POLL: Indirect should accept any T which is Cpp17Destructible (relax the restrictions in the paper, to allow int, union and function pointers).

SF F N A SA
4 11 2 0 0

Outcome: Consensus in favor
# of Authors: 2
Authors’ position: 2xF
Attendance: 30

Next Steps

Once we have a detailed reasoning for the course of action for "valueless state”, send the paper to SG23. Come back to LEWG with an investigation of the topics above.

Please reach out to authors between meetings. If no major topic comes up, the next meeting should be devoted to wording review.

@wg21bot
Copy link
Collaborator Author

wg21bot commented Dec 19, 2023

P3019R1 Vocabulary Types for Composite Class Design (Jonathan Coe, Antony Peacock, Sean Parent)

@wg21bot wg21bot removed the needs-revision Paper needs changes before it can proceed label Dec 19, 2023
@wg21bot wg21bot modified the milestones: 2023-telecon, 2024-telecon Dec 19, 2023
@wg21bot
Copy link
Collaborator Author

wg21bot commented Dec 19, 2023

P3019R2 Vocabulary Types for Composite Class Design (Jonathan Coe, Antony Peacock, Sean Parent)

@wg21bot wg21bot changed the title P3019 R1 Vocabulary Types for Composite Class Design P3019 R2 Vocabulary Types for Composite Class Design Dec 19, 2023
@wg21bot
Copy link
Collaborator Author

wg21bot commented Dec 19, 2023

P3019R3 Vocabulary Types for Composite Class Design (Jonathan Coe, Antony Peacock, Sean Parent)

@wg21bot wg21bot changed the title P3019 R2 Vocabulary Types for Composite Class Design P3019 R3 Vocabulary Types for Composite Class Design Dec 19, 2023
@wg21bot
Copy link
Collaborator Author

wg21bot commented Apr 17, 2024

P3019R8 Vocabulary Types for Composite Class Design (Jonathan Coe, Antony Peacock, Sean Parent)

@wg21bot wg21bot changed the title P3019 R7 Vocabulary Types for Composite Class Design P3019 R8 Vocabulary Types for Composite Class Design Apr 17, 2024
@wg21bot
Copy link
Collaborator Author

wg21bot commented Sep 21, 2024

P3019R9 Vocabulary Types for Composite Class Design (Jonathan Coe, Antony Peacock, Sean Parent)

@wg21bot wg21bot changed the title P3019 R8 Vocabulary Types for Composite Class Design P3019 R9 Vocabulary Types for Composite Class Design Sep 21, 2024
@wg21bot
Copy link
Collaborator Author

wg21bot commented Oct 17, 2024

P3019R10 Vocabulary Types for Composite Class Design (Jonathan Coe, Antony Peacock, Sean Parent)

@wg21bot wg21bot changed the title P3019 R9 Vocabulary Types for Composite Class Design P3019 R10 Vocabulary Types for Composite Class Design Oct 17, 2024
@bstamour bstamour moved this to In Progress in 2024 Poland LWG Schedule Nov 20, 2024
@bstamour
Copy link
Collaborator

LWG looked at this paper in Wroclaw on Wednesday. Meeting minutes: https://wiki.edg.com/bin/view/Wg21wroclaw2024/LWG20241120-P3019ea

@bstamour
Copy link
Collaborator

LWG polled this paper in Wroclaw on Friday: Poll: put p3019r11 (as reviewed by JG and JW) into C++26?

|F|A|N|
|9|0|1|

@bstamour bstamour moved this to In Progress in 2024 Poland LWG Schedule Nov 22, 2024
@bstamour bstamour moved this from In Progress to Tentatively Ready in 2024 Poland LWG Schedule Nov 22, 2024
@cor3ntin cor3ntin added plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. LWG Library and removed lwg-fullreview Paper is ready for lwg full group review labels Nov 23, 2024
@jensmaurer
Copy link
Member

jensmaurer commented Dec 5, 2024

The Project Editor has decided, after consultation with the LWG chair, that the paper is sufficiently unclear to be applied in its present form. See cplusplus/draft#7429 for details.

Removing the "plenary-approved" tag so that LWG can have another look.

@jensmaurer jensmaurer removed the plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. label Dec 5, 2024
@jbcoe
Copy link

jbcoe commented Dec 9, 2024 via email

@wg21bot
Copy link
Collaborator Author

wg21bot commented Dec 18, 2024

P3019R11 Vocabulary Types for Composite Class Design (Jonathan Coe, Antony Peacock, Sean Parent)

@wg21bot wg21bot modified the milestones: 2024-telecon, 2025-telecon Dec 18, 2024
@wg21bot wg21bot changed the title P3019 R10 Vocabulary Types for Composite Class Design P3019 R11 Vocabulary Types for Composite Class Design Dec 18, 2024
@jensmaurer jensmaurer added the needs-revision Paper needs changes before it can proceed label Jan 13, 2025
@wg21bot
Copy link
Collaborator Author

wg21bot commented Jan 14, 2025

P3019R12 Vocabulary Types for Composite Class Design (Jonathan Coe, Antony Peacock, Sean Parent)

@wg21bot wg21bot removed the needs-revision Paper needs changes before it can proceed label Jan 14, 2025
@wg21bot wg21bot changed the title P3019 R11 Vocabulary Types for Composite Class Design P3019 R12 Vocabulary Types for Composite Class Design Jan 14, 2025
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 LWG Library size - medium paper size estimate
Projects
Status: In Progress
Status: Tentatively Ready
Status: No status
Development

Successfully merging a pull request may close this issue.

9 participants