On Tuesday, 8 December 2015 at 10:26:18 UTC, Random D user wrote:
On Monday, 7 December 2015 at 20:03:07 UTC, Namespace wrote:
This seems to work:
----
struct RefVal(T) {
private T* ptr;
this(T* val) {
ptr = val;
}
ref auto opAssign(U)(auto ref U value) {
*ptr = value;
return *ptr;
}
auto get() inout {
return ptr;
}
}
----
Yes. It works for assignment as expected. Thanks. I don't know
why I didn't try that. I mean I tried something like this:
struct RefVal(T)
{
}
Whoops. For some reason lost focus to window while typing and
accidentally sent the message.
Well. Anyway, I tried something similar using alias this and
template functions, but obviously it didn't work.
Unfortunately. Your version doesn't work with methods. For
example if Ref!T is Ref!Struct then ref.method() doesn't work.
That's the reason for alias this.
But it's good enough with public ptr.
Maybe opDispatch could help here. I haven't really used it so far.