On Saturday, 19 September 2020 at 21:53:34 UTC, mw wrote:
On Thursday, 20 June 2019 at 07:57:25 UTC, KnightMare wrote:

imo NaN is useless, weird and unusual coz integrals and pointers are "all bits zeroes" but float and chars are "all bits ones". WTF? its strange that bool.init is false in such case. .init = "all zeroes" can be faster initialize any block of memory.

I have the same question, why float/double are init to NaN, instead of 0? as other post-C++ language does? e.g Java, C# ...

What's the reason for this design decision?

The default init values in D are intended to stand out if you're looking at a printf dump or a debugger. NaN for float double, and invalid UTF values for char/wchar/dchar were intentionally chosen. For the integrals, there are no invalid values, so we're stuck with 0.

Reply via email to