On Sunday, 5 September 2021 at 20:49:08 UTC, james.p.leblanc wrote:
On Sunday, 5 September 2021 at 20:38:29 UTC, Paul Backus wrote:
Please post the source code for `myarray_mod` so that we can reproduce the errors you're seeing.

Hello Paul,

Thanks for having a look ...

James

Here's a reduction of your myArray.d that works with your unchanged usage code:

```d
module myArray;
import std.stdio;

struct myArray {
    int* ptr;
    size_t length;

    myArray opIndex() {
        return this;
    }

    int opIndex(size_t i) {
        return ptr[i];
    }

    void opIndexOpAssign(string op)(int val, int ind) {
if ((op == "+") || (op == "-") || (op == "*") || (op == "/")) {
            mixin(" ptr[ind] " ~ op ~ "= val;");
        }
    }

    myArray opSlice(size_t start, size_t end) {
        return myArray(&ptr[start], end - start);
    }

    void opOpAssign(string op)(int rhs) if (op == "+") {
        foreach (i; 0 .. length) {
            mixin("ptr[i] " ~ op ~ "= i;");
        }
    }

    void opOpAssign(string op)(myArray rhs) if (op == "+") {
        foreach (i; 0 .. length) {
            mixin("ptr[i] " ~ op ~ "= rhs.ptr[i];");
        }
    }
}
```

Reply via email to