Is it possible to implement operators as ordinary functions?
data pulverizer
data.pulverizer at gmail.com
Tue May 19 02:36:24 UTC 2020
I was wandering if it possible to implement operators as ordinary
functions instead of as member functions of a class or struct for
example something like this:
```
import std.stdio: writeln;
struct Int{
int data = 0;
}
Int opBinary(string op)(Int x1, Int x2)
{
static if((op == "+") || (op == "-") || (op == "*") || (op ==
"/"))
{
int ret;
mixin("ret = x1.data " ~ op ~ " x2.data");
return ret;
}else{
static assert(0, "Operator unknown.");
}
}
void main()
{
Int x = Int(1);
Int y = Int(2);
writeln("Output: ", x + y);
}
```
More information about the Digitalmars-d-learn
mailing list