Hi!
Explain me please,what's wrong with this code:

struct NDimensionalArray(T,alias size)
        if(is(typeof(size) _ == int[n],int n) &&
           n > 0)
{
        static if(n > 1)
                NDimensionalArray!(T,n - 1,size[1..$]) m_array[size[0]];
        else
                T m_array[size[0]];
        alias m_array this;
}

void main()
{
        NDimensionalArray!(int,[2,2]) array;
        array[0][1] = 1;
}

It fails with message:
Error: template instance NDimensionalArray!(int, [2, 2]) NDimensionalArray!(int, [2, 2]) does not match template declaration NDimensionalArray(T, alias size) if (is(typeof(size) _ == int[n],int n) && n > 0)
on dmd git-head.

Reply via email to