static switch

Dominikus Dittes Scherkl Dominikus.Scherkl at continental-corporation.com
Wed Mar 5 04:51:21 PST 2014


I wonder why there is no static switch (analogue to static if)?
Because especially if you overload a lot of operators (which is 
done e.g.
in the definition of complex and bigint) I would think something 
like

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
    {
       ...
    }
}


More information about the Digitalmars-d mailing list