Timon Gehr:
* I agree on supporting deducing length for static arrays.
(there is a
int[$] arr = [1,2,3]; proposal.)
Someone in Bugzilla ha just proposed an alternative idea, that
despite not looking very nice, is not overall bad (here with a
small change):
auto arr = [1, 2, 3]f;
That trailing f denotes a fixed-side array/string literal. So
it's usable for other situations too.
* the foo(a,&b) example is biased because it uses a meaningless
function name. From the function name alone it is often
*almost*
clear that a certain argument will be modified. & & & spam is
not
'clean' either.
In C# you need to use "ref" and "out" at the calling point (in
most cases). D language has chosen a different design, but here
C# design has some advantages too, it makes the code semantics a
bit more clear.
Bye,
bearophile