This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 115d. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2024-10-26
[Accepted as a DR at the November, 2023 meeting.]
Subclause 6.7.2 [intro.object] paragraph 9 specifies:
... Two objects with overlapping lifetimes that are not bit-fields may have the same address if one is nested within the other, or if at least one is a subobject of zero size and they are of different types; otherwise, they have distinct addresses and occupy disjoint bytes of storage. [ Footnote: ... ]
Types T and const T are different types, but it is unlikely the rule is intending to differentiate along that line.
Suggested resolution [SUPERSEDED]:
Change in 6.7.2 [intro.object] paragraph 9 as follows:
... Two objects with overlapping lifetimes that are not bit-fields may have the same address if one is nested within the other, or if at least one is a subobject of zero size and they are of different types (ignoring top-level cv-qualifiers); otherwise, they have distinct addresses and occupy disjoint bytes of storage. [ Footnote: ... ]
Proposed resolution (approved by CWG 2023-09-15):
(Hypothetically, pointer-to-member types can be empty, but might differ in non-top-level cv-qualification.)
Change in 6.7.2 [intro.object] paragraph 9 as follows:
... Two objects with overlapping lifetimes that are not bit-fields may have the same address if one is nested within the other, or if at least one is a subobject of zero size and they are not ofdifferentsimilar types (7.3.6 [conv.qual]); otherwise, they have distinct addresses and occupy disjoint bytes of storage. [ Footnote: ... ]