On 08/31/2014 12:37 AM, bearophile wrote:
Ali Çehreli:

Unless there is a specific reason not to, use 'string'. When you
really need random access to characters, then use 'dstring'.

So are the use cases for wstring limited?

Bye,
bearophile

Yes, without real experience, I am under that impression. Let's see:

- char is UTF-8. UTF-8 is a variable-length encoding, from 1 up to 6 bytes per character.

- wchar is UTF-16. UTF-16 is a variable-length encoding, 2 or 4 bytes per character.

- dchar is UTF-32. UTF-32 is a fixed-length encoding, exactly 4 bytes per characters.

As I understand it, wchar would make sense when UTF-8 would take considerably more space than UTF-16 for a given text. Another case is when a wchar array is guaranteed to consist solely of 2-byte characters; it can then safely be used as a random access range.

In contrast, a dchar array provides random access for any text but takes up more space for certain text than UTF-8 and UTF-16 (e.g. text consisting mostly of 1-byte characters in UTF-8 (e.g. ASCII)).

So yes, wchar has limited use compared to the others.

Ali

Reply via email to