On 8/25/2014 6:23 AM, "Ola Fosheim Grøstad"
<[email protected]>" wrote:
On Monday, 25 August 2014 at 13:07:08 UTC, Don wrote:
practice. So a JSON parser should at least be able to lex them.
ie this should be parsable:
{"foo": NaN, "bar": Infinity, "baz": -Infinity}
You should also put tests in for what happens when you pass NaN or infinity to
toJSON. It shouldn't silently generate invalid JSON.
I believe you are allowed to use very high exponents, though. Like: 1E999 . So
you need to decide if those should be mapped to +Infinity or to the max value…
Infinity. Mapping to max value would be a horrible bug.
NaN also come in two forms with differing semantics: signalling(NaNs) and quiet
(NaN). NaN is used for 0/0 and sqrt(-1), but NaNs is used for illegal values
and failure.
For some reason D does not seem to support this aspect of IEEE754? I cannot find
".nans" listed on the page http://dlang.org/property.html
Because I tried supporting them in C++. It doesn't work for various reasons.
Nobody else supports them, either.