On Thursday, 28 November 2013 at 09:02:12 UTC, Walter Bright
wrote:
Sadly,
I think it's great. It means by default, your strings will always
be handled correctly. I think there's quite a few algorithms that
were written without ever taking strings into account, but still
happen to work with them.
std.array is determined to decode (i.e. convert to dchar[]) all
your strings when they are used as ranges.
This means that all algorithms on
strings will be crippled as far as performance goes.
Quite a few algorithms in array/algorithm/string *don't* decode
the string when they don't need to actually.
Very, very few operations on strings need decoding. The
decoding should have gone into a separate layer.
Which operations are you thinking of in std.array that decode
when they shouldn't?