September 29, 2017
Trying to do multi-dimension array but op-dollar doesn't seem to support arbitrary dimensions


@property int opDollar(size_t dim : k)() { return dims[k]; }


September 29, 2017
On 09/29/2017 11:34 AM, Joseph wrote:
> Trying to do multi-dimension array but op-dollar doesn't seem to support arbitrary dimensions
> 
> 
> @property int opDollar(size_t dim : k)() { return dims[k]; }
> 
> 

It's called by multi-dimensional opIndex (or opSlice and perhaps others?; can be very complicated :) ).

import std.stdio;

struct S {
    @property size_t opDollar(size_t dim)() {
        writefln("Called for dimension %s", dim);
        return dim;
    }
    auto opIndex(A...)(A args) {
        return 42;
    }
}

void main() {
    auto s = S();
    s[$, $];
}

Called for dimension 0
Called for dimension 1

Ali