Where should I put a `condp` like function?
Idan Arye
GenericNPC at gmail.com
Thu Apr 18 08:13:11 PDT 2013
On Thursday, 18 April 2013 at 14:26:08 UTC, deadalnix wrote:
> On Thursday, 18 April 2013 at 13:58:46 UTC, Idan Arye wrote:
>> Naturally - even as statements, a `switch` statement without a
>> switch expression is no better than a chain of `if`-`else`s.
>>
>
> As mentioned before in other thread, LLVM is crazy good at
> transforming if/else chains into switch statement, and GCC does
> a good job at it as well.
A `switch` statement is faster than a `if`-`else` chain only when
it can use a lookup table, and for the lookup table a switch
expression is a must. Another precondition for a lookup table is
that the test expressions are known at compile-time.
The given example has none - there is no switch expression(though
one may argue that you can use `true` as the switch expression)
and the test expressions are function calls calculated at runtime.
If the compiler can translate a `if`-`else` chain to a `switch`
statement - then it should have probably been a `switch`
statement in the first place. That way it would have also been
more readable.
More information about the Digitalmars-d
mailing list