digitalmars.D.learn - Is it possible to implement operators as ordinary functions?
- data pulverizer (27/27) May 18 2020 I was wandering if it possible to implement operators as ordinary
- Adam D. Ruppe (2/5) May 18 2020 nope, it must be done as member functions.
- data pulverizer (2/7) May 18 2020 Thanks!
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); } ```
May 18 2020
On Tuesday, 19 May 2020 at 02:36:24 UTC, data pulverizer wrote: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:nope, it must be done as member functions.
May 18 2020
On Tuesday, 19 May 2020 at 02:42:22 UTC, Adam D. Ruppe wrote:On Tuesday, 19 May 2020 at 02:36:24 UTC, data pulverizer wrote:Thanks!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:nope, it must be done as member functions.
May 18 2020