Struct Postblit Void Initialization

Eugene Wissner via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Jul 30 12:32:48 PDT 2017


On Sunday, 30 July 2017 at 19:22:07 UTC, Jiyan wrote:
> Hey,
> just wanted to know whether something like this would be 
> possible sowmehow:
>
> struct S
> {
> int m;
> int n;
> this(this)
> {
> m = void;
> n = n;
> }
> }
>
> So not the whole struct is moved everytime f.e. a function is 
> called, but only n has to be "filled"

this(this) is called after the struct is copied. Doing something 
in the postblit constructor is too late. The second thing is that 
the struct is copied with memcpy. What you propose would require 
2 memcpy calls to copy the first part of the struct and then the 
second part. Besides it is difficult to implement, it may reduce 
the performance of the copying since memcpy is optimized to copy 
memory chunks.


More information about the Digitalmars-d-learn mailing list