proposal for general dup function

Jacob Carlborg doob at me.com
Mon Dec 10 10:55:09 PST 2012


On 2012-12-10 17:06, Dan wrote:

> I think so. Here is a claim I think is true: gdup must do full deep copy
> to be safe and guarantee the transitive const/immutable. If it is
> implemented such that there are no casts, then the compiler does its job
> and ensures everything is good. If there are casts they need to be
> deemed safe - I have one cast to work around issues in associative array
> iteration.

I'm pretty sure it can't be done. For classes one need to bypass the 
constructor. The constructor is the only place where you can initialize 
const/immutable fields. For class instance one would need to cast it to 
a ubyte pointer (or similar) and then set the const/immutable fields 
that way.

I think it can be done safely, but not something the compiler can guarantee.

-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list