How to "extend" built-in types
Dan
dbdavidson at yahoo.com
Fri Oct 26 08:30:40 PDT 2012
On Friday, 26 October 2012 at 13:55:35 UTC, simendsjo wrote:
> Not sure if this is a bug or intended behavior:
> ...
> So.. What do I need to implement for a struct to be a valid
> built-in type?
> All valid properties (min, max etc) and operators for that type?
I am looking for something similar. I ended up looking at Proxy
in typecons because the description says "// Enable operations
that original type has". So for instance it looks like you could
wrap an int or double in a struct and it is almost exactly like
an int or a double. Presumably you could then overload just the
changes (min/max for range, etc). I've found issues for my case,
but at least its worth a look.
http://forum.dlang.org/post/ycayokcwncqfwfstomck@forum.dlang.org
If I try to check that this struct is numeric, unfortunately it
is not.
writeln("Is numeric ", isNumeric!CcRate); // false
writeln("Is numeric ", isNumeric!double); // true
-----
struct CcRate {
private double rate = 0;
mixin Proxy!rate;
this(double rate) {
this.rate = rate;
}
}
----
Thanks
Dan
More information about the Digitalmars-d-learn
mailing list