As far as I am aware, the C standard doesn't make any
guarantees about what the leading digit in the hex formats
is, nor about the number of exponent digits displayed by
default.
We should look into replacing the functions with our own
implementations to provide consistent behavior independent
of the host C runtime library, and potentially also allowing
the functionality to be used from CTFE.
This allows JSON to be used as a temporary serialization format when debugging an application as it becomes human- and diff-readable.
Empty JSON object/array is formatted as "{}"/"[]".
isWhite, isLower, isUpper, toLower, and toUpper now have Ascii in their
name, which matches what std.unit does with its versions of those
functions. Hopefully, it should also reduce bugs due to using the wrong
function between the ASCII and unicode versions by making the difference
more obvious.
std.algorithm: defined move with one argument; levenshtein distance generalized to with all forward ranges; take now has swapped arguments
std.array: empty for arrays is now a @property; front and back for a string and wstring automatically decodes the first/last character; popFront, popBack for string and wstring obey the UTF stride
std.conv: changed the default array formatting from "[a, b, c]" to "a b c"
std.range: swapped order of arguments in take
std.stdio: added readln template
std.variant: now works with statically-sized arrays and const data
std.traits: added isNarrowString