DIP 1018--The Copy Constructor--Community Review Round 1

Kagamin spam at here.lot
Wed Dec 19 11:53:12 UTC 2018


I think const postblit can be done by creating shadow copy of 
instance fields (but still physically located in the field).

struct A
{
     int b;
     this(this) immutable
     {
         immutable int shadow_b; //reads go here
         //b++
         immutable int t=shadow_b;
         shadow_b.__dtor();
         b.__ctor(t+1);
     }
}

Type system would treat them as distinct instances, but would 
destroy shadow copy right before assignment, after which shadow 
copy's lifetime ends and it goes out of scope completely, which 
will also invalidate any retained pointers if any.


More information about the Digitalmars-d mailing list