Auto-decoding
ag0aep6g via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Jul 14 22:54:32 PDT 2017
On 07/15/2017 06:21 AM, bauss wrote:
> I understand what it is and how it works, but I don't understand
> anything of how it solves any problems?
>
> Could someone give an example of when auto-decoding actually is useful
> in contrast to not using it?
1) Drop two elements from "Bär". With auto-decoding you get "r", which
is nice. Without auto-decoding you get [0xA4, 'r'] where 0xA4 is the
second half of the encoding of 'ä'. You have to know your Unicode to
understand what is going on there.
2) Search for 'ä' (one wchar/dchar) in the `string` "Bär". With
auto-decoding, you pop the 'B' and then there's your 'ä'. Without
auto-decoding, you can't find 'ä', because "Bär" doesn't have a single
element that matches 'ä'. You have to search for "ä" (two `char`s) instead.
The goal of auto-decoding was to make it so that you don't have to think
about Unicode all the time when processing strings. Instead you could
think in terms of "characters". But auto-decoding falls flat on that
goal, which is why it's disliked. You still have to think about Unicode
stuff for correctness (combining characters, graphemes), and now you
also have to worry about the performance of auto-decoding.
More information about the Digitalmars-d-learn
mailing list