Thread overview
changing array lengths
Dec 10, 2008
Ellery Newcomer
Dec 10, 2008
Derek Parnell
December 10, 2008
Does the following totally not make sense? I think it should work.

int[] a = new int[10];

a.length += 30;
December 10, 2008
On Tue, Dec 9, 2008 at 11:54 PM, Ellery Newcomer <ellery-newcomer@utulsa.edu> wrote:
> Does the following totally not make sense? I think it should work.
>
> int[] a = new int[10];
>
> a.length += 30;
>

It's a weird limitation that's been around forever.  Ugh.

Here, have this.

T[] resize(T)(ref T[] arr, ptrdiff_t delta)
{
    arr.length = arr.length + delta;
    return arr;
}

...

auto a = new int[10];
a.resize(30); // now 40
a.resize(-30); // now 10
December 10, 2008
On Tue, 09 Dec 2008 22:54:30 -0600, Ellery Newcomer wrote:

> Does the following totally not make sense? I think it should work.
> 
> int[] a = new int[10];
> 
> a.length += 30;

Unfortunately, the .length property, like all properties, do not support the 'op=' syntax. You have to do it the long way ...

 a.length = a.length + 30;

-- 
Derek Parnell
Melbourne, Australia
skype: derek.j.parnell