Cannot initialize associative array.

Bernard Helyer b.helyer at gmail.com
Wed Jun 23 05:15:21 PDT 2010


On Wed, 23 Jun 2010 00:41:45 -0700, Ali Çehreli wrote:

> Ali Çehreli wrote:
>> dcoder wrote:
>> 
>>  > So, I moved the initialization to inside the main function, and now
>> it works.
>>  > Great.  I think we need to put this question in the FAQ.
>> 
>> For future reference, if it really needs to be global:
>> 
>> uint[string] mywords;
>> 
>> static this()
>> {
>>     mywords = [ "Hello" : 1, "World" : 1, "Cat" : 1, "Dog" : 1 ];
>> }
> 
> Could someone please verify whether the above is really necessary? Is it
> actually a dmd bug that we need to use 'static this()' to initialize an
> associative array?
> 
> Ali

I can't remember where exactly I read it, but there's a line in the docs 
specifically forbidding the use of AAs in constant expressions, so it's 
by design AFAIK.


More information about the Digitalmars-d-learn mailing list