Czy błędne nazwy `char16_t` i` char32_t`?

Uwaga: Jestem pewien, że ktoś nazwie to subiektywnie, ale uważam, że jest to dość namacalne.

C ++ 11 daje nam nowe możliwościbasic_string typystd::u16string istd::u32string, wpisz aliasy dlastd::basic_string<char16_t> istd::basic_string<char32_t>, odpowiednio.

Wykorzystanie podciągów"u16" i"u32" dla mnie w tym kontekście oznacza raczej „UTF-16” i „UTF-32”, co byłoby głupie, ponieważ C ++ nie ma oczywiście pojęcia o kodowaniu tekstu.

Nazwy faktycznie odzwierciedlają typy postacichar16_t ichar32_t, ale te wydają się błędnie nazywane. onesą niepodpisane, ze względu na brak podpisu ich typów bazowych:

[C++11: 3.9.1/5]: [..] Typychar16_t ichar32_t oznaczają różne typy o takim samym rozmiarze, sygnaturze i wyrównaniu jakuint_least16_t iuint_least32_t, odpowiednio [..]

Ale potem wydaje mi się, że te nazwy naruszają konwencję, że takie niepodpisane typy mają nazwy zaczynające się'u'i że użycie liczb jak16 bez zastrzeżeń według terminów takich jakleast wskaż typy o stałej szerokości.

Moje pytanie brzmi:Czy wyobrażam sobie rzeczy, czy te nazwy są zasadniczo błędne?

questionAnswers(3)

yourAnswerToTheQuestion