On Saturday, April 07, 2012 18:45:40 Caligo wrote: > I'm not questioning the design, but I would like to know the reason: > given the fact that associative arrays are built into the language, > why don't we have static associative arrays?
What do you mean my static associative arrays? Are you asking why you can't initialize a static variable which is an AA at compile time? e.g. static int[string] aa = ["hello" ; 7, "world", 13]; //error That's because that would involve allocating memory at compile time which would then somehow have to be around at runtime. And that doesn't work right now. Classes have the same problem. You have to initialize them at runtime. I believe that dynamic arrays are the only ones that work with that right now, and that's because it's a difficult problem. Obviously, none of the memory allocated at compile time can persist to runtime, so there is no simple solution. At some point, it will probably be possible, but not right now. You _should_ be able to use them in CTFE, but they can't be assigned to anything that will persist until runtime. The solution is to use static constructors to initialize AAs and class references at runtime. Now, if you're talking about something else, I have no idea what you mean by static AAs. - Jonathan M Davis