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