Variant[string] associative array ... fail?

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Sat Apr 4 11:24:51 PDT 2009


Eljay wrote:
> Hi everyone,
> 
> This code works...
> ----------------------
> import std.variant;
> import std.stdio;
> void main()
> {
>   Variant v;
>   v = "hello";
>   writeln(v);
> }
> ----------------------
> 
> But this code does not...
> ----------------------
> import std.variant;
> import std.stdio;
> void main()
> {
>   Variant[string] v;
>   v["there"] = "hello";
>   writeln(v["there"]);
> }
> ----------------------
> ...resulting in this runtime failure:
> core.exception.RangeError at Var(6): Range violation
> 
> What did I do wrong?
> 
> Using Digital Mars D Compiler v2.027, on OS X 10.5.6.
> 
> Thanks,
> --Eljay

Hey Eljay, thanks for being around :o). It's good you raise scrutiny 
about the dynamic style of coding in D. The code is correct but subject 
to a compiler bug:

http://d.puremagic.com/issues/show_bug.cgi?id=2451

I just voted that up (it's supposed to raise its informal importance), 
you may want to as well.


Andrei



More information about the Digitalmars-d mailing list