On Friday, 8 November 2013 at 04:28:31 UTC, Ross Hays wrote:

class Vector(int N, T) if (N <= 3) {
    T[N] data;

    this()
    {
        data[] = 0;
    }

@property ref T opDispatch(string fieldName, Args ...)(Args args) if (Args.length < 2 && fieldName.length == 1 && toOffset(fieldName) < N)
    {
            int offset = fieldName[0 .. 1] - 'x';
            if (args.length != 0)
                return data[offset];
            else
                return data[offset] = args[0];
    }
}

Same error.

Sorry, I forgot to mention in that post that you have "toOffset" in your template constraint, which means it will also never match. You'll have to define it or replace it with `fieldName[0] - 'x';`

Also, you might not want to do `fieldName[0 .. 1]` because that's a slice (which is just another array of length 1). It won't do what you're expecting.

Reply via email to