Setting array length to 0 discards reserved allocation?

Jonathan M Davis via Digitalmars-d digitalmars-d at puremagic.com
Thu Jul 31 23:10:07 PDT 2014


On Wednesday, 30 July 2014 at 09:52:15 UTC, Andrew Godfrey wrote:
>
>> What about T[] is _not_ a dynamic array?
>
> Now that I've done this exercise I can answer more crisply:
> When T[] is an lvalue, it behaves like a reference, not a 
> dynamic array.

So the fact that it slices rather than copies is enough to make 
it not a dynamic array. As far as I can tell, the copying 
behavior of a dynamic array has nothing to do with it being a 
dynamic array. It's the facts that you can append to, it 
maintains extra capacity to make appending efficient, and it 
reallocates when it runs out of extra capacity (making appending 
an amortized O(1)) that make an array a dynamic array. And T[] 
does that.

- Jonathan M Davis


More information about the Digitalmars-d mailing list