On Wednesday, 8 December 2021 at 18:07:32 UTC, Ben Jones wrote:
Since I reuse the field a few times I tried to alias the result:

`alias theProp = __traits(child, s, field);`

yeah won't work since the alias again drops the `this`, this is the same thing as the template param.

You could make a couple helper functions though. Like

void set(typeof(field) v) {
   __traits(child, s, field) = v;
}

typeof(field) get() {
   return __traits(child, s, field);
}

just declare them nested inside the function and then you can use get and set as-needed. You could make a mixin or whatever if there's a bunch of functions doing this.



Of course another idea is to make a helper struct that just wraps the field with opAssign and alias this or something but then it needs to keep a pointer back to s inside that object.

Reply via email to