On Tuesday, 12 July 2022 at 14:17:36 UTC, ananymouse wrote:

Been racking my brain on this for hours. Please point me in the right direction.

Thanks,
--anonymouse

My current implementation:

    ``` d
    // Allow for indexing to read a value, e.g a[0,0,0]
    T opIndex(A...)(A a) {
        static if(a.length == 3) {
            int index = a[0] * dims[1] * dims[2] + a[2];
            return data[index];
        }
        else static if(a.length == 2) {
           return data[a[0] * dims[1] + a[1];
        }
        else static if (a.length == 1) {
           return data[0]
        }
        assert(0);
    }
    ```

This does not scale well. Therefore, I'd like to change the first if statement to work with any array.length > 2 and dynamically generate the code. I've tried using a foreach loop to achieve this but failed miserably.

--anonymouse

Reply via email to