C++ Logo

STD-PROPOSALS

Advanced search

Subject: Re: [std-proposals] Allowing access to object representations
From: sdkrystian (sdkrystian_at_[hidden])
Date: 2019-08-17 19:01:22


I mean, changing it is really trivial, so for that edge case where someone wants to access the object representation of a complete object through a object of zero size, it wouldn't be an issue to change.Sent from my Samsung Galaxy smartphone.
-------- Original message --------From: Language Lawyer via Std-Proposals <std-proposals_at_[hidden]> Date: 8/17/19 19:16 (GMT-05:00) To: std-proposals_at_[hidden] Cc: Language Lawyer <language.lawyer_at_[hidden]> Subject: Re: [std-proposals] Allowing access to object representations On 18/08/2019 01:40, sdkrystian via Std-Proposals wrote:> 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?[basic.compound]/3:> A value of a pointer type that is a pointer to ... an object represents the address of the first byte in memory occupied by the objectPointer to an object of type B and its base class subobject represent the same address ([basic.compound]/4).According to your proposal,> The object representation of an object a of type cv T is a sequence of N cv unsigned char objects, that occupy the same storage as aThe storage occupied by the base class subobject of an object of type B "begins" at the storage of the containing object, yet you say that the object representation of the subobject won't "appear" in the object representation of the containing object.> Sent from my Samsung Galaxy smartphone.> > -------- Original message --------> From: Language Lawyer via Std-Proposals <std-proposals_at_[hidden]>> Date: 8/17/19 16:39 (GMT-05:00)> To: std-proposals_at_[hidden]> Cc: Language Lawyer <language.lawyer_at_[hidden]>> 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_at_[hidden]> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals> -- Std-Proposals mailing listStd-Proposals_at_[hidden]https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals



STD-PROPOSALS list run by herb.sutter at gmail.com

Standard Proposals Archives on Google Groups