EMSI Containers and HashMap of HashMaps

Imperatorn johan_forsberg_86 at hotmail.com
Sun May 2 08:59:15 UTC 2021


On Sunday, 2 May 2021 at 07:38:03 UTC, Tobias Pankrath wrote:
> The following code segfaults, when the outer hashmap rehashes,
> and I am not yet sure why.
>
> ```d
> module tests.refcounted_hashmap_test;
>
> import containers;
> import std.typecons;
>
> struct Map
> {
>     HashMap!(int, int) theMap;
> }
>
> unittest
> {
>     HashMap!(int, RefCounted!Map) mapOfMaps;
>     foreach (i; 0 .. 1000)
>     {
>         RefCounted!Map val;
>         if (i == 0) val.theMap.getOrAdd(i, i);
>         mapOfMaps.getOrAdd(i, val);
>     }
> }
> ```
>
> For your convenience: https://run.dlang.io/is/gHSlu1
>
> I am using Refcounted() because HashMap itself is not 
> copy-able. Is there another way to have HashMaps as values of 
> HashMaps?

```d
HashMap!(int, RefCounted!Map) mapOfMaps = HashMap!(int, 
RefCounted!Map)(1024);
```


More information about the Digitalmars-d-learn mailing list