On 03/23/2011 12:01 PM, Madhav wrote:
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

IIUC, you can do it level by level only:
unittest {
    int[3] a3;
    int[3][2] a32;
    a3[] = 1;
    a32[] = a3;
    assert(a32 == [[1,1,1], [1,1,1]]);
}

Note: in those assignments, [] is optional, but I consider this as a bug. Even more since
   int[3] a3 = 1;       // works
   int[3][2] a32 = a3   // works not

denis
--
_________________
vita es estrany
spir.wikidot.com

Reply via email to