Top 5

Benji Smith dlanguage at benjismith.net
Fri Oct 10 08:54:33 PDT 2008


Andrei Alexandrescu wrote:
> new T[x] is a brain-dead syntax that I wish Walter hadn't imported in 
> the first place.

Really? I think it's very valuable.

The "new T[x]" syntax lets you construct an array as an RValue. Without 
that syntax, you have to declare an array before using it.

    // nice
    x.setOutputBuffer(new char[64]);

    // not so nice
    char[64] buffer;
    x.setOutputBuffer(buffer);

Personally, I'd love to see the distinction between static arrays and 
dynamic arrays disappear. (The compiler can do whatever it wants behind 
the scenes, but usually I just don't care which is which, and I'd prefer 
a unified syntax.)

I think *all* arrays should be declared like this:

    T[] array = new T[n];

If "n" is known it compile time, then D can use CTFE to create a static 
array, and if "n" isn't known until runtime, it can create a dynamic 
array. But as the user, I don't want to care which is which.

(And I don't see how the distinction in the type-system between T[] and 
T[3] is useful.)

--benji



More information about the Digitalmars-d mailing list