Range violation with AAs
    Nordlöw via Digitalmars-d-learn 
    digitalmars-d-learn at puremagic.com
       
    Mon Oct 17 11:23:23 PDT 2016
    
    
  
On Monday, 17 October 2016 at 17:43:19 UTC, Nordlöw wrote:
> At
>
> https://github.com/nordlow/phobos-next/blob/master/src/array_ex.d
>
> I have an array container.
>
> Everything works as expected in all unittests except for the 
> line at
>
> https://github.com/nordlow/phobos-next/blob/master/src/array_ex.d#L1649
>
> that fails as
>
>     core.exception.RangeError at array_ex.d(1649): Range violation
>
> and I have no clue why.
>
> Is this a know problem with AA's with container-like structs as 
> value types?
In other words
     alias Key = string;
     alias A = Array!int;
     A[Key] x;
     x["a"] ~= 42; // triggers violation
fails.
If I initialize the value prior to append as in
     alias Key = string;
     alias A = Array!int;
     A[Key] x;
     x["a"] = A.init;
     x["a"] ~= 42; // no violation
the violation doesn't happen.
And if I replace `Array!int` with `int[]` as in
     alias Key = string;
     alias A = int[];
     A[Key] x;
     x["a"] ~= 42;
it also doesn't happen.
    
    
More information about the Digitalmars-d-learn
mailing list