T[new] misgivings

Max Samukha spambox at d-coding.com
Fri Oct 16 01:57:42 PDT 2009


On Thu, 15 Oct 2009 21:55:07 -0500, Andrei Alexandrescu
<SeeWebsiteForEmail at erdani.org> wrote:

>I talked to Walter about T[new] today and it seems we are having a 
>disagreement.

I'd prefer Walter's way with a provision that array literals are
immutable and allocated statically:

immutable(int)[] a = [1, 2, 3]; // no allocation here
int[new] b = [1, 2]; // new storage is allocated and the literal is
copied there
int[] a = [1, 2, 3]; // error. dup needed
auto c = [1, 2, 3]; // c is of type immutable(int)[]
b[] = c; //b's length is changed and c's contents  copied to b's
storage
auto d = [1, 2, 3].dup; // d is of type int[new]
auto e = [1, 2, 3].idup; // e is of type immutable(int)[new]

// arrays are true reference types
int[new] a = [1, 2, 3];
b = a;
a.length = 22;
assert (a.length == b.length);



More information about the Digitalmars-d mailing list