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

NB: яЯ уверен, что кто-то назовет это субъективным, но я считаю, чтодовольно ощутимо.

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

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

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

[C++11: 3.9.1/5]: [..] Типыchar16_t а такжеchar32_t обозначают различные типы с тем же размером, подписью и выравниванием, что иuint_least16_t а такжеuint_least32_tсоответственно [..]

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

Мой вопрос заключается в следующем:я воображаю вещи, или эти имена в корне неверны?

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

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