grauzone wrote:
Andrei Alexandrescu wrote:
Don wrote:
Walter Bright wrote:
The purpose of T[new] was to solve the problems T[] had with passing T[] to a function and then the function resizes the T[]. What happens with the original?

The solution we came up with was to create a third array type, T[new], which was a reference type.

Andrei had the idea that T[new] could be dispensed with by making a "builder" library type to handle creating arrays by doing things like appending, and then delivering a finished T[] type. This is similar to what std.outbuffer and std.array.Appender do, they just need a bit of refining.

The .length property of T[] would then become an rvalue only, not an lvalue, and ~= would no longer be allowed for T[].

We both feel that this would simplify D, make it more flexible, and remove some awkward corner cases like the inability to say a.length++.

What do you think?

Since noone else seems to have said it: The fact that you're both willing to let it go, after having already invested a lot of time in it, is a good sign for the language. Well done.

I'm relieved that somebody mentioned that :o). As soon as we gave up with T[new], people started to sell it to us. We should preemptively post about eliminating feature plans before actually implementing them.

By the way: implementation of @property has been canceled.

Yeah, let's just keep the language in the broken state it is, because we can't think of a better solution.

Silly me, I was thinking the humor was all too obvious.

Andrei

Reply via email to