Skip to content

Commit 8c0c315

Browse files
committed
[3074] Ugh fixing CWG wording
1 parent 06e7191 commit 8c0c315

File tree

3 files changed

+1743
-4
lines changed

3 files changed

+1743
-4
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
p3074r6.html : constexpr-union-lifetime.md
1+
d3074r7.html : constexpr-union-lifetime.md
22
include ../md/mpark-wg21.mk

3074_consexpr_union_lifetime/constexpr-union-lifetime.md

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: "trivial `union`s (was `std::uninitialized<T>`)"
3-
document: P3074R6
3+
document: D3074R7
44
date: today
55
audience: EWG
66
author:
@@ -12,6 +12,10 @@ tag: constexpr
1212

1313
# Revision History
1414

15+
Since [@P3074R6], core wording updates.
16+
17+
Since [@P3074R5], core wording updates.
18+
1519
Since [@P3074R4], wording changes and adjusted the rule for when a [union's destructor is deleted](#constructordestructor-intention-matching)
1620

1721
Since [@P3074R3], in [St. Louis](https://github.com/cplusplus/papers/issues/1734#issuecomment-2195769496), EWG had expressed a clear preference for "just make it work":
@@ -561,7 +565,7 @@ Change [class.dtor]{.sref}/7-8:
561565
::: addu
562566
* [7.x]{.pnum} `X` is a union and either
563567

564-
* [#.x.#]{.pnum} `X` does not have a default constructor that is defaulted on its first declaration,
568+
* [#.x.#]{.pnum} `X` does not have an eligible default constructor that is trivial, or
565569
* [#.x.#]{.pnum} `X` has a variant member `V` of class type `M` (or possibly multi-dimensional array thereof) where `V` has a default member initializer and `M` has a destructor that is non-trivial, deleted, or inaccessible from the defaulted destructor,
566570
:::
567571

@@ -608,4 +612,19 @@ And update the macro for `inplace_vector` in [version.syn]{.sref}:
608612
- #define __cpp_lib_inplace_vector 202406L // also in <inplace_vector>
609613
+ #define __cpp_lib_inplace_vector 2025XXL // also in <inplace_vector>
610614
```
611-
:::
615+
:::
616+
617+
---
618+
references:
619+
- id: P3074R6
620+
citation-label: P3074R6
621+
title: "trivial `union`s (was `std::uninitialized<T>`)"
622+
author:
623+
- family: Barry Revzin
624+
issued:
625+
date-parts:
626+
- - 2025
627+
- 02
628+
- 13
629+
URL: https://wg21.link/p3074r6
630+
---

0 commit comments

Comments
 (0)