Array expression for multi dimensional arrays
Jonathan M Davis
jmdavisProg at gmx.com
Wed Mar 23 17:25:44 PDT 2011
> Hi,
>
> I tried to do the following:
> auto arr = new int[2][2];
> arr[] = 1; // using array expressions
> // The above gives - Error: cannot implicitly convert expression (1) of
> type int to const(int[2u][])
>
> This was the first step to try out if array arithmetic that worked with
> single dimensional arrays worked with multi-dimensional. I guess it does
> not.
>
> The immediate utility of this would be to cleanly do matrix algebra. Any
> ideas why powerful array expressions were not extended to multi
> dimensional arrays as well?
>
> Regards,
> Madhav
It wouldn't really help in this case, but I would point out that you probably
didn't declare the type of array that you meant to (you might have, but most
people wouldn't really want the type of array that you declared but _would_
mistakenly use the syntax that you used).
You declare an int[2u][], whereas what you probably wanted was an int[][]. You
have a dynamic array of static arrays where each static array has a fixed
length of 2. If you want a dynamic array of dynamic arrays, you need to do
this:
auto arr = new int[][](2, 2);
- Jonathan M Davis
More information about the Digitalmars-d
mailing list