Ok, look at it like this:

Given this code:

struct A { };

struct B : A { int a; };

Assuming the implementation chooses to make the base class have zero size, how exactly would the object representation of the base class appear in the derived class?


Sent from my Samsung Galaxy smartphone.

-------- Original message --------
From: Language Lawyer via Std-Proposals <std-proposals@lists.isocpp.org>
Date: 8/17/19 16:39 (GMT-05:00)
To: std-proposals@lists.isocpp.org
Cc: Language Lawyer <language.lawyer@gmail.com>
Subject: Re: [std-proposals] Allowing access to object representations

On 17/08/2019 23:02, sdkrystian via Std-Proposals wrote:
>  > But where the object representation of a zero size base class subobject of `o` will appear?
> You seem to guarantee that it, despite having zero size, still has sizeof(T) ≠ 0 elements.
>
> It won't appear in the enclosing object (the wording only guarantees so for objects of nonzero size); specifying so would just be extraneous wording.

A zero size base class subobject with nonzero elements in its object representation which do not "appear" in its enclosing object's representation sounds weird.
--
Std-Proposals mailing list
Std-Proposals@lists.isocpp.org
https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals