Initialising invariant associative array

David Ferenczi raggae at ferenczi.net
Wed Jun 18 01:21:05 PDT 2008


The following code gives the following compilation error:

src/test/test.d(13): Error: non-constant expression ["s1":cast(FOO
9223372036854775808LU,"s2":cast(FOO)4611686018427387904LU]
src/test/test.d(14): Error: non-constant expression [cast(FOO
9223372036854775808LU:"s1",cast(FOO)4611686018427387904LU:"s2"]


--------------------------8<------------------------------------
import std.stdint: uint_fast64_t;

class A
{
    typedef uint_fast64_t FOO;

    static invariant FOO fooValue1 = cast(FOO) 0x8000000000000000LU;
    static invariant FOO fooValue2 = cast(FOO) 0x4000000000000000LU;

    static invariant FOO[string] fooArray =
["s1":fooValue1, "s2":fooValue2];
    static invariant string[FOO] strArray = [fooValue1:"s1",
fooValue2:"s2"];
}

int main(string[] args)
{
    A a;

    return 0;
}
--------------------------8<------------------------------------

Can somebody explain me why?

Thanks,
David


More information about the Digitalmars-d-learn mailing list