Is there any reason why the following fails with an ArrayBoundsError error? import std.cstream; void main () { string [string] array = ["name": "value"]; dout.writefln ("value: %s", array ["name"]); } I've been using the following work around, But I'm not sure why the above fails. ... string [string] array; array ["name"] = "value"; ... Can anyone explain this?