On Saturday, 16 December 2023 at 21:30:55 UTC, kdevel wrote:
If you comment out this line

```
//    m[f] = 1;
```

in your main function of your posted code you can catch up with your
real programm insofar as you now need a ref parameter here, too.

That's because `m[f] = 1` initializes the associative array to something non-null. If you pass a `null` AA to a function which adds things, the caller will still have a null pointers. You can initialize a non-null empty AA like this:

```D
uint[Foo] m = new uint[Foo];
```

Then, `m` can be passed by value and you can make additions or removals which the caller sees, unless you assign a new AA in the function.

Reply via email to