On Friday, 11 August 2017 at 22:50:53 UTC, ketmar wrote:
Mr. Pib wrote:
Wow, that is pretty screwed up! I thought D was against
implicit conversions that might cause problems? I'm passing
an int and I should be able to append an int without having to
worry about the value of the int. Instead D chose to do
something very strange, awkward, and error prone.
this is legacy we got from trying to be C-compatible (along
with int/uint autoconversion, and some other things). i believe
that initially it was done to allow something like `char c =
32;`, and now it is too late to change it, 'cause such change
will break existing code (and we're trying to not break the
code without a *very* strong reason, even if keeping old code
working means keeping some old quirks).
The problem is that that mentality perpetuates the problem. It
keeps things from ever getting fixed and corrected by it's very
nature... all to supposedly save time.... but how much time does
it waste too? It would be better to break things cleanly and let
those that get errors fix them... cause hell, after some years
the old code will not be used more anyways or be rewritten so
maybe it is trying to solve a problem that doesn't actually exist?