Я это понимаю size_t
имеет _t
суффикс, так как его псевдоним /typedef
, Однако я не могу понять, по какой причине char16_t
, char32_t
а также wchar_t
содержит _t
суффикс.
За wchar_t
:
В C ++
wchar_t
это отличный фундаментальный тип (и, следовательно, он не определен в<cwchar>
ни какой другой заголовок).В C это typedef целочисленного типа.
За char16_t
а также char32_t
, определенный в <cuchar>
/uchar.c
:
В C этот заголовок определяет два макроса:
char16_t
а такжеchar32_t
, которые отображаются на беззнаковые целочисленные типы соответствующего размера (так же, какuint_least16_t
а такжеuint_least32_t
соответственно).В C ++
char16_t
а такжеchar32_t
являются фундаментальными типами (и поэтому этот заголовок не определяет такие макросы в C ++).
Таким образом, в обоих случаях, хотя они являются фундаментальными типами в C ++, они сохраняют _t
для совместимости с C, где они были typedefs или макросами.
Других решений пока нет …