Являются ли `char16_t` и` char32_t` неправильными?

NB: I'm sure someone will call this subjective, but I reckon it's fairly tangible.

C ++ 11 дает нам новоеbasic_string типыstd::u16string а такжеstd::u32stringвведите псевдонимы дляstd::basic_string<char16_t> а такжеstd::basic_string<char32_t>соответственно.

Использование подстрок"u16" а также"u32" для меня в этом контексте скорее подразумевается «UTF-16» и «UTF-32», что было бы глупо, поскольку в C ++, конечно, нет понятия кодирования текста.

На самом деле имена отражают типы символовchar16_t а такжеchar32_t, но они кажутся неправильно названными. Oниare без знака, из-за неподписанности их основных типов:

[C++11: 3.9.1/5]: [..] Types char16_t and char32_t denote distinct types with the same size, signedness, and alignment as uint_least16_t and uint_least32_t, respectively [..]

Но тогда мне кажется, что эти имена нарушают соглашение о том, что такие неподписанные типы имеют имена, начинающиеся с'u'и что использование чисел типа16 неквалифицированный такими терминами, какleast указать типы фиксированной ширины.

Мой вопрос заключается в следующем:am I imagining things, or are these names fundamentally flawed?

Ответы на вопрос(3)

Ваш ответ на вопрос