Cannot initialize associative array.
    bearophile 
    bearophileHUGS at lycos.com
       
    Tue Jun 22 15:08:10 PDT 2010
    
    
  
Bernard Helyer:
> AAs can't be assigned to at compile time (:[).
You can define enum ones, this works:
import std.stdio;
enum int[string] aa = ["foo": 10];
void main() {
    writeln(cast(bool)("foo" in aa));
    writeln(aa["foo"]);
    writeln(cast(bool)("hello" in aa));
}
But this code:
import std.stdio;
immutable int[string] aa = ["foo": 10];
void main() {
    writeln(cast(bool)("foo" in aa));
    writeln(aa["foo"]);
    writeln(cast(bool)("hello" in aa));
}
Raises the compilation error:
test.d(2): Error: non-constant expression ["foo":10]
In theory aa here is a constant expression :-)
Bye,
bearophile
    
    
More information about the Digitalmars-d-learn
mailing list