# 标准库头文件 <cuchar>

< cpp‎ | header

此头文件原作为 `<uchar.h>` 存在于 C 标准库。

此头文件是空终止多字节字符串库的一部分。

### 宏
__STDC_UTF_16__ (C++11) | 指示 mbrtoc16 与 c16rtomb 使用 UTF-16 编码 (宏常量)
__STDC_UTF_32__ (C++11) | 指示 mbrtoc32 与 c32rtomb 使用 UTF-32 编码 (宏常量)
### 类型
mbstate_t | 迭代多字节字符串所需的转换状态信息 (类)
size_t | `sizeof` 运算符返回的无符号整数类型 (typedef)
### 函数
mbrtoc16 (C++11) | 转换窄多字节字符为 UTF-16 编码 (函数)
c16rtomb (C++11) | 转换 16 位宽字符为窄多字节字符串 (函数)
mbrtoc32 (C++11) | 转换窄多字节字符为 UTF-32 编码 (函数)
c32rtomb (C++11) | 转换 32 位宽字符为窄多字节字符串 (函数)
mbrtoc8 (C++20) | 转换窄多字节字符为 UTF-8 编码 (函数)
c8rtomb (C++20) | 转换 UTF-8 字符串为窄多字节编码 (函数)

### 概要

    namespace std {
      using mbstate_t = /* 见描述 */;
      using size_t = /* 见描述 */;

      size_t mbrtoc8(char8_t* pc8, const char* s, size_t n, mbstate_t* ps);
      size_t c8rtomb(char* s, char8_t c8, mbstate_t* ps);
      size_t mbrtoc16(char16_t* pc16, const char* s, size_t n, mbstate_t* ps);
      size_t c16rtomb(char* s, char16_t c16, mbstate_t* ps);
      size_t mbrtoc32(char32_t* pc32, const char* s, size_t n, mbstate_t* ps);
      size_t c32rtomb(char* s, char32_t c32, mbstate_t* ps);
    }