Hi,
In Extended Pascal, you can derive from a basic type and change
the default initialiser like so:
type int1 = integer value 1;
var i : int1;
ii : int1 value 2;
assert(i = 1);
assert(ii = 2);
I have it working in D, but it seems a little clumsy. Is there a
better way?
struct initial(T, T val)
{
private T _payload = val;
alias _payload this;
static initial opCall(T v)
{
initial s;
s._payload = v;
return s;
}
}
unittest
{
alias initial!(int, 1) int1;
int1 i;
assert(i == 1);
int1 ii = 2;
assert(ii == 2);
}