CWG Issue 2499

This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 120c. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2026-08-20

———
2499. Inconsistency in definition of pointer-interconvertibility

Section: 6.9.5 [

basic.compound

] Status: CD6 Submitter: Jason Merrill Date: 2021-07-29 [Accepted at the February, 2022 meeting.]

The changes for

issue 2254

included the following:

Change 6.9.5 [

basic.compound

] bullet 4.3 as follows:

Two objects a and b are pointer-interconvertible if:

...

one is a standard-layout class object and the other is the first non-static data member of that object, or, if the object has no non-static data members, the firstany base class subobject of that object (11.4 [

class.mem

]), or

This should also have removed the phrase,

or, if the object has no non-static data members,

since the change to 11.4 [

class.mem

] paragraph 25 specifies that all bases of a standard-layout class have the same address, regardless of whether the derived class has non-static data members.

Proposed resolution (November, 2021):

Change 6.9.5 [

basic.compound

] bullet 4.3 as follows:

Two objects a and b are pointer-interconvertible if:

...

one is a standard-layout class object and the other is the first non-static data member of that object, or, if the object has no non-static data members, any base class subobject of that object (11.4 [

class.mem

]), or

...