On Monday, 27 June 2016 at 16:38:58 UTC, Ola Fosheim Grøstad
Yes, and the idea of speeding up strings by padding out with
zeros is not new. ;-) I recall suggesting it back in 1999 when
discussing the benefits of having a big endian cpu when sorting
strings. If it is big endian you can compare ascii as 32/64 bit
integers, so if you align the string and pad out with zeros
then you can speed up strcmp() by a significant factor. Oh,
here it is:
Your link's use of padding pads out with a variable number of
zeros, so that a larger data type can be used for the compare
operations. This isn't the same as my example, which is simpler
due to not having to fiddle with alignment and data type casting.
I didn't find a strlen implementation for dchar or wchar in the D
I also found it strange, the non-zero initialization values for
char, dchar, wchar. I suppose there's some reason?
int  to zeros.
char  to 0xff;
dchar  to 0xffff;
wchar  to 0xffff;