On 06/05/2011 06:22 PM, bearophile wrote:
Andrej Mitrovic:

I wish "newVoid" was a language feature. If we have:
int x = void;

It'd also be nice to have a similar form for the new operator:
int[] x = void new int[](size);
x[] = 1;

"int x = void" might not save too much cycles, but initializing a
large array twice.. that's another thing.

newVoid seems to only work for 1-dimensional arrays. I could use
something of this form:
double[][] arr = newVoid!(double[][])(16, 100);

Not a big deal, I could write something like this for my own projects.
I'm just commenting.

I used GC.malloc before but I never once thought about setting the
NO_SCAN flag. Heh. :)

This is kind of off-topic.
There is a very simple syntax, nice and clean:

// doesn't initialize foo1
auto foo1 = new uint[5] = void;

Everywhere else in the language, expr1 = expr2 = expr3 means "expr2 gets expr3 and then exp1 gets expr2). Cue the slave choir in Nabucodonosor, adagio sostenuto, piano ma espressivo: "Special cases are baaaaad... special cases are veeery baaaaad...."

new T[size](void) and new T[size](initializer) have been discussed, Walter never got around to thinking of implementing them.


Andrei

Reply via email to