Justin Johansson wrote:
Seriously though, I imagine the D design choices to be influenced by
the desire to propagate NaN and invalid UTF in their respective cases
so as to detect uninitialized data errors.
That's exactly what drove the design choices.
If there was a nan value for integers, D would use that. But there
isn't, so 0 is the best we can do.
Andrei and I were talking last night about the purity of software design
principles and the reality, and how the reality forces compromise on the
purity if you wanted to get anything done.