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];");
}
}
}
```