On 08/13/2015 11:48 PM, Adel Mamin wrote:
Compiler dmd_2.068.0-0_amd64.deb on Ubuntu 12.04 Linux:

auto lookup = [ "one":1, "two":2 ];

The dmd error:
Error: non-constant expression ["one":1, "two":2]

I think the problem is when the variable is defined at module scope. It works inside functions, etc.

Why doesn't it compile?
As a workaround I could do the assignment one element at a time in a
loop. It would be uglier though.

A better workaround is to initialize it in the module constructor:

immutable int[string] lookup;

shared static this()
{
    lookup = [ "one":1, "two":2 ];
}

void main()
{
    assert("one" in lookup);
}

Ali

Reply via email to