memset and related things
Jeremie Pelletier
jeremiep at gmail.com
Wed Sep 23 07:52:37 PDT 2009
bearophile wrote:
> Walter Bright:
>
>> Java does do some escape analysis to try and allocate heap objects on
>> the stack instead, but I don't know how effective this is, and even that
>> won't help if you try to embed a value aggregate into a class:
>>
>> struct S { int x, y, z; }
>>
>> class C
>> {
>> S v; // in Java this would require a second heap allocation
>> }
>
> I have discussed with LDC devs an improvement of that idea (it was discussed in this newsgroup too):
>
> class C1 { int x, y, z; }
>
> class C2 {
> scope C1 c;
> }
>
> This idea raises few problems, but I think they can be solved.
> You can special-case the management of such objects scope-allocated inside other objects. Or you can just add an invisible field to that C2 class, the reference to c.
>
> Bye,
> bearophile
I would love to see such a feature added in D, would make object
composition much more convenient and faster.
You'd just need the compiler to force a call into C1's constructor
within C2's and generate a call to C1's destructor in the epilog of
C2's. I can't see how implementing idea that could be any harder, other
than the parser related support.
No need to store a reference within the object, that would still require
another heap allocation killing the need for scope in the first place.
More information about the Digitalmars-d
mailing list