How safe is it to rely on doing something like this:
uint[size_t] x;
foreach(i; iota(0, 10))
x[i]++;
foreach(i; iota(5, 15))
x[i]++;
... ? In this case "correct" output comes out -- that is, values for keys 1-4
and 10-14 come out as 1, values for keys 5-9 come out as 2 -- but it seems a bit
shaky to assume that just incrementing x[i] without first checking ((i in x) !is
null) will come out correctly.
I note that the above works even if uint[size_t] is changed to real[size_t],
which is a surprise, because I'd have assumed that everything would come out as
nan's.