On Saturday, 6 June 2015 at 17:06:37 UTC, Dennis Ritchie wrote:
The problem is that the `static if` it does not work:

immutable hash = [1 : 3, 5 : 7];

static if (5 in hash)
    writeln("OK");
// Error: expression &[1:3, 5:7][5]
// is not constant or does not evaluate to a bool

You have to write something like that :)

immutable hash = [1 : 3, 5 : 7];

static if (!!(5 in hash))
    writeln("OK"); // prints OK

Pulls whether this issue? Or is it normal?

http://dlang.org/version.html#staticif:

StaticIfCondition:
   static if ( AssignExpression )

AssignExpression is implicitly converted to a boolean type, and is evaluated at compile time. The condition is satisfied if it evaluates to true. It is not satisfied if it evaluates to false.

So, I suppose it's should work without casting to bool or `!is` operator.

Reply via email to