Mein gegenwärtiger Verständnis des Unterschieds zwischen std::string
und std::wstring
ist einfach der Typ des Puffers; nämlich char
vs wchar_t
jeweils.std :: string, wstring, u16/32string klärung
Ich habe auch gelesen, dass die meisten (wenn nicht alle) Linux-Distributionen verwenden char
für alle und alle Saiten, sowohl ASCII als auch UTF, auf dem Windows das primäre Betriebssystem ist, das wchar_t
mehr verwendet.
Allerdings gibt es ein paar mehr String-Typen, die ich direkt in meinem Kopf erhalten möchte: u16string
und u32string
, die Strings mit 2-Byte- bzw. 4-Byte-Puffer sind.
So ist meine Frage:
Auf Plattformen mit sizeof(wchar_t) == 2
ist std::wstring
funktional äquivalent zu std::u16string
sowie Plattformen mit sizeof(wchar_t) == 4
und std::u32string
?
Es gibt eine andere ähnliche Frage zu SO über string/wstring [hier –
@FloreaMarian Nicht wirklich - diese Frage fragt den Unterschied zwischen 'string 'und' wstring'. Ich frage, ob 'wstring' dasselbe ist wie'u16string' oder' u32string', abhängig von der Größe von 'wchar_t'. – Qix
siehe http://utf8everywhere.org –