On Wednesday, 5 March 2014 at 12:51:23 UTC, Dominikus Dittes Scherkl wrote:
T opOpAssign(string op, T)(T x) if(op=="+" || op=="-" || op=="*" || op=="/" || op=="%" || op=="^^" || op=="&" || op=="|" || op=="^" || op=="<<" || op==">>" || op==">>>")
{
   static switch(op)
   {
   case "+":
   case "-":
      ...
      break;
   case "*":
      ...
   }
}

would look much better than

{
   static if(op=="+" || op == "-")
   {
      ...
   }
   else static if(op == "*")
   {
      ...
   }
   else
   {
      ...
   }
}

You can simply make it different overloads:

T opOpAssign(string op, T)(T x) if(op=="+" || op=="-")
{
   ...
}

T opOpAssign(string op, T)(T x) if(op=="*" || op=="/" || op=="%")
{
  ...
}

etc.

Reply via email to