std :: string, wstring, wyjaśnienie u16 / 32string
Moje obecne zrozumienie różnicy międzystd::string
istd::wstring
jest po prostu typem bufora; mianowicie,char
vswchar_t
, odpowiednio.
Czytałem również, że większość (jeśli nie wszystkie) dystrybucji Linuksa jest używanachar
dla wszystkich łańcuchów, zarówno ASCII, jak i UTF, gdzie Windows jest podstawowym systemem operacyjnym, który używawchar_t
już.
Istnieje jednak kilka innych typów ciągów, które chcę uzyskać bezpośrednio w mojej głowie:u16string
iu32string
, które są łańcuchami z buforami 2-bajtowymi i 4-bajtowymi.
Więc moje pytanie brzmi:
Na platformach zsizeof(wchar_t) == 2
, jeststd::wstring
funkcjonalnie równoważnystd::u16string
, a także platformy zsizeof(wchar_t) == 4
istd::u32string
?