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

P3074R4 trivial unions (was std::uninitialized<T>) #1734

Open
wg21bot opened this issue Dec 19, 2023 · 11 comments
Open

P3074R4 trivial unions (was std::uninitialized<T>) #1734

wg21bot opened this issue Dec 19, 2023 · 11 comments
Assignees
Labels
B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 C++26 Targeted at C++26 EWG Evolution IS Ship vehicle: IS LEWG Library Evolution LWG Library needs-revision Paper needs changes before it can proceed size - medium paper size estimate
Milestone

Comments

@wg21bot
Copy link
Collaborator

wg21bot commented Dec 19, 2023

P3074R0 constexpr union lifetime (Barry Revzin)

@wg21bot wg21bot added the EWG Evolution label Dec 19, 2023
@wg21bot wg21bot added this to the 2024-telecon milestone Dec 19, 2023
@inbal2l inbal2l added IS Ship vehicle: IS C++26 Targeted at C++26 labels Dec 19, 2023
@hanickadot
Copy link
Collaborator

EWG telecon 31th January:

P3074R1: We prefer language based solution over library based solution

SF/F/N/A/SA
5/4/4/2/1

Consensus.

@wg21bot
Copy link
Collaborator Author

wg21bot commented Feb 16, 2024

P3074R1 std::uninitialized<T> (Barry Revzin)

@wg21bot wg21bot changed the title P3074 R0 constexpr union lifetime P3074 R1 std::uninitialized&lt;T&gt; Feb 16, 2024
@wg21bot
Copy link
Collaborator Author

wg21bot commented Feb 16, 2024

P3074R2 std::uninitialized<T> (Barry Revzin)

@wg21bot wg21bot changed the title P3074 R1 std::uninitialized&lt;T&gt; P3074 R2 std::uninitialized&lt;T&gt; Feb 16, 2024
@cor3ntin cor3ntin changed the title P3074 R2 std::uninitialized&lt;T&gt; P3074 R2 std::uninitialized<T> Feb 16, 2024
@hanickadot
Copy link
Collaborator

hanickadot commented Mar 21, 2024

EWG discussed P3074R2 in Tokyo on Thursday.

P3074 std::uninitialized: EWG is interested in solving presented problem (lazy initialization).

SF F N A SA
9 11 1 1 0

Consensus.

P3074 std::uninitialized: EWG prefers language solution to presented problem over std::uninitialized library type.

SF F N A SA
6 7 3 4 2

Not consensus.

P3074 std::uninitialized: Require to have language feature to appear only in limited context.

SF F N A SA
3 5 9 1 1

Not consensus.

@jfbastien jfbastien added the needs-revision Paper needs changes before it can proceed label Mar 22, 2024
@inbal2l inbal2l added the LEWG Library Evolution label Mar 25, 2024
@wg21bot
Copy link
Collaborator Author

wg21bot commented Apr 17, 2024

P3074R3 trivial union (was std::uninitialized<T>) (Barry Revzin)

@wg21bot wg21bot removed the needs-revision Paper needs changes before it can proceed label Apr 17, 2024
@wg21bot wg21bot changed the title P3074 R2 std::uninitialized<T> P3074 R3 trivial union (was std::uninitialized&lt;T&gt;) Apr 17, 2024
@cor3ntin cor3ntin changed the title P3074 R3 trivial union (was std::uninitialized&lt;T&gt;) P3074 R3 trivial union (was std::uninitialized<T>;) Apr 17, 2024
@cor3ntin cor3ntin changed the title P3074 R3 trivial union (was std::uninitialized<T>;) P3074 R3 trivial union (was std::uninitialized<T>) Apr 17, 2024
@cor3ntin
Copy link

As of R3, this no longer impacts library.

@cor3ntin cor3ntin removed the LEWG Library Evolution label Apr 23, 2024
@inbal2l inbal2l added B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 size - medium paper size estimate labels Apr 23, 2024
@brevzin brevzin self-assigned this May 19, 2024
@jfbastien
Copy link
Collaborator

jfbastien commented Jun 27, 2024

Seen in EWG in St Louis:

Poll: P3074R3 — trivial union (was std::uninitialized), we are interested in pursuing solution “trivial union”.

SF F N A SA
0 3 13 4 1

Poll: P3074R3 — trivial union (was std::uninitialized), we are interested in pursuing solution “just make it work”.

SF F N A SA
4 14 3 2 0

Winner!!!

Poll: P3074R3 — trivial union (was std::uninitialized), we would rather have a library solution.

SF F N A SA
4 3 6 10 0

@jfbastien jfbastien added the needs-revision Paper needs changes before it can proceed label Jun 27, 2024
@wg21bot
Copy link
Collaborator Author

wg21bot commented Sep 21, 2024

P3074R4 trivial unions (was std::uninitialized<T>) (Barry Revzin)

@wg21bot wg21bot removed the needs-revision Paper needs changes before it can proceed label Sep 21, 2024
@wg21bot wg21bot changed the title P3074 R3 trivial union (was std::uninitialized<T>) P3074 R4 trivial unions (was std::uninitialized&lt;T&gt;) Sep 21, 2024
@cor3ntin cor3ntin changed the title P3074 R4 trivial unions (was std::uninitialized&lt;T&gt;) P3074 R4 trivial unions (was std::uninitialized<T>) Sep 22, 2024
@jfbastien
Copy link
Collaborator

Seen in EWG on Thursday:

Poll: P3074r4 — trivial unions (was std::uninitialized): forward to LEWG and CWG for inclusion in C++26.

SF F N A SA
8 14 0 0 0

Result: consensus in favor

@jfbastien jfbastien added LEWG Library Evolution CWG Core and removed EWG Evolution labels Nov 21, 2024
@jensmaurer jensmaurer added this to CWG Nov 21, 2024
@jensmaurer jensmaurer moved this to Ready for review in CWG Nov 21, 2024
@bstamour
Copy link
Collaborator

LWG looked at this in Wroclaw: Poll: LWG is happy with the library wording in P3074r4 for C++26?

|F|A|N|
|8|0|0|

@jensmaurer
Copy link
Member

jensmaurer commented Nov 22, 2024

CWG 2024-11-22 in Wroclaw: Reviewed D3074R5.

This adds situations with undefined behavior that were previously ill-formed.

union U { std::string s; };
std::string f() {
  U u;  // previously ill-formed; now OK
  return u.s;  // undefined behavior
}

Whether the added undefined behavior in this low-level facility is worth the benefits of the proposed facility is a judgment call that EWG should make explicitly.

@jensmaurer jensmaurer added EWG Evolution and removed CWG Core labels Nov 22, 2024
@jensmaurer jensmaurer moved this from Ready for review to Awaiting updated wording in CWG Nov 22, 2024
@jensmaurer jensmaurer added the needs-revision Paper needs changes before it can proceed label Nov 22, 2024
@inbal2l inbal2l changed the title P3074 R4 trivial unions (was std::uninitialized<T>) P3074R4 trivial unions (was std::uninitialized<T>) Nov 22, 2024
@JeffGarland JeffGarland added the LWG Library label Dec 4, 2024
@jensmaurer jensmaurer moved this from Awaiting updated wording to Waiting for subgroups in CWG Dec 6, 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 EWG Evolution IS Ship vehicle: IS LEWG Library Evolution LWG Library needs-revision Paper needs changes before it can proceed size - medium paper size estimate
Projects
Status: No status
Status: Waiting for subgroups
Development

No branches or pull requests

9 participants