static switch
Dicebot
public at dicebot.lv
Wed Mar 5 12:05:42 PST 2014
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.
More information about the Digitalmars-d
mailing list