making COW and ownership
    Era Scarecrow 
    rtcvb32 at yahoo.com
       
    Wed Nov 21 07:13:16 PST 2012
    
    
  
On Wednesday, 21 November 2012 at 10:15:52 UTC, Timon Gehr wrote:
> This also duplicates the data if you move the struct in memory 
> and then mutate. Probably you just need to have a boolean owner 
> flag and set it to false on postblit.
  Hadn't thought of a move being involved.. I was trying to use a 
way to identify it at the off chance it copied without a 
postblit, then it could still identify itself... (casting could 
easily do that). I have code that forcibly converts a struct into 
a raw array, since reversing that is needed at times. In those 
cases the owner address would still identify it where with a flag 
it would overwrite the referenced data believing it was the owner.
  Let's see... Here's the convert struct/type to array, modified 
to simplify.
   void[] getArrayOfType(TYPE, V ...)() {
     TYPE[] t;
     t.length = 1;
     static if (V.length)
       t[0] = TYPE(V);
     return cast(void[]) t;
   }
    
    
More information about the Digitalmars-d-learn
mailing list