constant expression

Nicholas Wilson via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Feb 22 23:38:32 PST 2016


On Tuesday, 23 February 2016 at 07:26:01 UTC, Ali Çehreli wrote:
> On 02/22/2016 09:52 PM, Nicholas Wilson wrote:
>> How is this not a constant expression ?
>> auto ctodtypes =
>> [
>>      "void"      : "void",
>>      "uint32_t"  : "uint",
>>      "uint64_t"  : "ulong",
>>      "int32_t"   : "int",
>>      "int64_t"   : "long",
>>      "char"      : "char",
>>      "uint8_t"   : "ubyte",
>>      "size_t"    : "size_t",
>>      "float"     : "float"
>> ];
>> dmd complains
>> source/emit/registryemitter.d(7): Error: non-constant 
>> expression
>> ["void":"void", "uint32_t":"uint", "uint64_t":"ulong", 
>> "int32_t":"int",
>> "int64_t":"long", "char":"char", "uint8_t":"ubyte", 
>> "size_t":"size_t",
>> "float":"float"]
>
> Because it's mutable: :)
>
>     ctodtypes["hello"] = "world";
>
> What context are you using it in?
>
> Ali

I've tried with both mutable and immutable a module scope. Scope 
I want is global (don't care about mutability)



More information about the Digitalmars-d-learn mailing list