Thread overview
associative arrays:
Oct 01, 2008
llee
Oct 01, 2008
Denis Koroskin
Oct 01, 2008
Denis Koroskin
Oct 01, 2008
Gide Nwawudu
October 01, 2008
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?
October 01, 2008
On Wed, 01 Oct 2008 22:18:55 +0400, llee <Larry@workingwondersus.com> wrote:

> 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"]);
>      }
>
That's one of the most frequently discussed bugs (or features?).
You can't do that (as of now).

> 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?
October 01, 2008
On Wed, Oct 1, 2008 at 8:18 PM, llee <Larry@workingwondersus.com> wrote:
> 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?
>

Might be helpful to know what version of the compiler you're using. This code works for me in 1.034.
October 01, 2008
On Wed, 01 Oct 2008 23:27:14 +0400, Jarrett Billingsley <jarrett.billingsley@gmail.com> wrote:

> On Wed, Oct 1, 2008 at 8:18 PM, llee <Larry@workingwondersus.com> wrote:
>> 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?
>>
>
> Might be helpful to know what version of the compiler you're using.
> This code works for me in 1.034.

It doesn't for me (2.019)
October 01, 2008
On Wed, Oct 1, 2008 at 9:26 PM, Denis Koroskin <2korden@gmail.com> wrote:
> On Wed, 01 Oct 2008 22:18:55 +0400, llee <Larry@workingwondersus.com> wrote:
>
>> 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"]);
>>     }
>>
> That's one of the most frequently discussed bugs (or features?).
> You can't do that (as of now).

What are you talking about?  It compiles and runs for me in D1.
October 01, 2008
On Wed, Oct 1, 2008 at 10:10 PM, Denis Koroskin <2korden@gmail.com> wrote:
> On Wed, 01 Oct 2008 23:27:14 +0400, Jarrett Billingsley <jarrett.billingsley@gmail.com> wrote:
>
>> On Wed, Oct 1, 2008 at 8:18 PM, llee <Larry@workingwondersus.com> wrote:
>>>
>>> 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?
>>>
>>
>> Might be helpful to know what version of the compiler you're using. This code works for me in 1.034.
>
> It doesn't for me (2.019)
>

Then fail!
October 01, 2008
On Thu, 02 Oct 2008 00:10:41 +0400, "Denis Koroskin" <2korden@gmail.com> wrote:

>On Wed, 01 Oct 2008 23:27:14 +0400, Jarrett Billingsley <jarrett.billingsley@gmail.com> wrote:
>
>> On Wed, Oct 1, 2008 at 8:18 PM, llee <Larry@workingwondersus.com> wrote:
>>> 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?
>>>
>>
>> Might be helpful to know what version of the compiler you're using. This code works for me in 1.034.
>
>It doesn't for me (2.019)

It is a bug in D2.

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

Gide