diff --git a/3074_consexpr_union_lifetime/constexpr-union-lifetime.md b/3074_consexpr_union_lifetime/constexpr-union-lifetime.md index 0f5c866b..17bdfa82 100644 --- a/3074_consexpr_union_lifetime/constexpr-union-lifetime.md +++ b/3074_consexpr_union_lifetime/constexpr-union-lifetime.md @@ -306,9 +306,7 @@ public: [#]{.pnum} `uninitialized` is a trivially default constructible and trivially destructible type. -[#]{.pnum} If `T` is an implicit-lifetime type, then the construction of `uninitialized` also starts the lifetime of `$value$`. - -[#]{.pnum} An object of type `T` and an object of type `uninitialized` have distinct addresses ([intro.object]). +[#]{.pnum} [An object of type `T` and the `$value$` subobject of `uninitialized` have distinct addresses ([intro.object])]{.note} ```cpp constexpr uninitialized(); diff --git a/3074_consexpr_union_lifetime/p3074r1.html b/3074_consexpr_union_lifetime/p3074r1.html index 9f4cb1f6..b8172fe0 100644 --- a/3074_consexpr_union_lifetime/p3074r1.html +++ b/3074_consexpr_union_lifetime/p3074r1.html @@ -815,15 +815,14 @@

constexpr const remove_extent_t<T>& ref() const noexcept { return *ptr(); } };

10 uninitialized<T> is a trivially default constructible and trivially destructible type.

-

11 If T is an implicit-lifetime type, then the construction of uninitialized<T> also starts the lifetime of value.

-

12 An object of type T and an object of type uninitialized<T> have distinct addresses ([intro.object]).

+

11 Note 1: An object of type T and the value subobject of uninitialized<T> have distinct addresses ([intro.object]) — end note ]

constexpr uninitialized();
-

13 Effects: If T is an implicit-lifetime type, begins the lifetime of value. Otherwise, none. Note 1: The constructor of T, if any, is not called — end note ]

+

12 Effects: If T is an implicit-lifetime type, begins the lifetime of value. Otherwise, none. Note 2: The constructor of T, if any, is not called — end note ]

constexpr uninitialized(const uninitialized&);
 constexpr uninitialized& operator=(const uninitialized&);
-

14 If T is a trivially copyable type, then uninitialized<T> is a trivially copyable type. Otherwise, uninitialized<T> is not copyable.

+

13 If T is a trivially copyable type, then uninitialized<T> is a trivially copyable type. Otherwise, uninitialized<T> is not copyable.

constexpr ~uninitialized();
-

15 Effects: None. Note 2: The destructor of T, if any, is not called — end note ]

+

14 Effects: None. Note 3: The destructor of T, if any, is not called — end note ]

4 References