Tricky semantics of ranges & potentially numerous Phobos bugs

Tommi tommitissari at hotmail.com
Tue Oct 16 10:51:09 PDT 2012


On Tuesday, 16 October 2012 at 17:19:26 UTC, Jonathan M Davis 
wrote:
> 1. There is no generic way to deep copy stuff.

Could you elaborate on that a bit more?

How about a deep-assign operator? The compiler could implicitly 
define it at least for arrays and for structs that don't have 
mutable indirection:

struct MyStruct
{
     int _value;

     // implicit:
     ref MyStruct opDeepAssign(ref const MyStruct ms)
     {
         this = ms;
         return this;
     }
}

int[] array1 = [1, 2, 3];
int[] array2;
array2.opDeepAssign(array1); // array2 = array1.dup;

And there would be hasDeepAssign!T traits and whatnot.


More information about the Digitalmars-d mailing list