This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 115e. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2024-11-11
[Voted into the WP at the July, 2017 meeting.]
According to 11.5 [class.union] paragraph 2,
[Note: A union object and its non-static data members are pointer-interconvertible (6.8.4 [basic.compound], 7.6.1.9 [expr.static.cast]). As a consequence, all non-static data members of a union object have the same address. —end note]
However, the normative wording now only requires this for standard-layout unions.
Proposed resolution (April, 2017):
Change 6.8.4 [basic.compound] bullet 4.2 as follows:
Two objects a and b are pointer-interconvertible if:
they are the same object, or
one is a
standard-layoutunion object and the other is a non-static data member of that object (11.5 [class.union]), or...