On 3/5/14, 4:07 PM, deadalnix wrote:
On Wednesday, 5 March 2014 at 12:51:23 UTC, Dominikus Dittes
Scherkl wrote:
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
{
...
}
}
Constant folding will generate code like that. What does the
static buys you ?
Readability.