The demise of T[new]

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Mon Oct 19 18:08:13 PDT 2009


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



More information about the Digitalmars-d mailing list