Extending library functions
simendsjo
simendsjo at gmail.com
Thu Oct 18 04:43:37 PDT 2012
On Thursday, 18 October 2012 at 11:31:47 UTC, tn wrote:
> Hi.
>
> I want to extend math library functions to work with my own
> type. However, the definition for my own type seems to prevent
> automated access to the original function. How can I fix this
> unexpected behavior?
>
> Simplified example:
> --------------------
> import std.math;
>
> int exp2(int x) {
> return 1 >> x;
> }
>
> void main() {
> assert(exp2(0.0) == 1.0); // <= why does not
> this work anymore?
> //assert(std.math.exp2(0.0) == 1.0); // <= this works
> }
> --------------------
You need to manually add std.math.exp2 to the overload set so
importing external methods doesn't hijack your methods:
http://dlang.org/function.html#overload-sets
alias std.math.exp2 exp2;
More information about the Digitalmars-d-learn
mailing list