Create a proxy
Ali Çehreli via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Feb 19 18:05:46 PST 2016
On 02/19/2016 06:18 AM, Voitech wrote:
> I was trying to use mixins for this i
> created some functions but this not working don't know why
Compilation errors or something else? pragma(msg) helps with debugging
generated code. You can also use unittest blocks to make sure that the
generated code is what you expect.
> There is also a Proxy template in std.typecons but i don't understand
> how it works
That one makes a user-defined type to be used as another type. The
example from the documentation is MyInt behaves exactly like an int by
forwarding int operations to 'value':
struct MyInt
{
private int value;
mixin Proxy!value;
this(int n){ value = n; }
}
MyInt n = 10;
Support for all the following operations (++, ==, *, and more) are mixed
in by Proxy:
// Enable operations that original type has.
++n;
assert(n == 11);
assert(n * 2 == 22);
Ali
More information about the Digitalmars-d-learn
mailing list