C++ 11:unicode string literals(Unicode 字符串字面量)
Unicode 字符串字面量
语法 | 说明 |
---|---|
“s字符序列(可选)” | 通常字符串字面量。无前缀字符串字面量的类型是 const char[N],其中 N 是以执行窄编码 (C++23 前)通常字面量编码 (C++23 起)的编码单元计的字符串的大小,包含空终止符。 |
L"s字符序列(可选)" | 宽字符串字面量。L"…" 字符串字面量的类型是 const wchar_t[N],其中 N 是以执行宽编码 (C++23 前)宽字面量编码 (C++23 起)的编码单元计的字符串的大小,包含空终止符。 |
u8"s字符序列(可选)" | UTF-8 字符串字面量。u8"…" 字符串字面量的类型是 const char[N] (C++20 前)const char8_t[N] (C++20 起),其中 N 是以 UTF-8 编码单元计的字符串的大小,包含空终止符。 |
u"s字符序列(可选)" | UTF-16 字符串字面量。u"…" 字符串字面量的类型是 const char16_t[N],其中 N 是以 UTF-16 编码单元计的字符串的大小,包含空终止符。 |
U"s字符序列(可选)" | UTF-32 字符串字面量。U"…" 字符串字面量的类型是 const char32_t[N],其中 N 是以 UTF-32 编码单元计的字符串的大小,包含空终止符。 |
前缀(可选) R"d字符序列(可选)(r字符序列(可选))d字符序列(可选)" | 原始字符串字面量。用于避免转义任何字符。分隔符间的任何内容都成为字符串的一部分。如果存在 前缀 则具有与上述相同的含义。结尾的 d字符序列需要和开头的 d字符序列一致。 |
语法 | 解释 |
---|---|
s字符序列 | 一个或多个s字符 |
s字符 | 下列之一: 一个基础s字符 一个转义序列,定义见转义序列 一个通用字符名,定义见转义序列 |
基础s字符 | 来自源字符集 (C++23 前)翻译字符集 (C++23 起)去掉双引号(")、反斜杠(\)和换行符后的字符 |
前缀 | L、u8、u、U 之一 |
d字符序列 | 一个或多个d字符,最多十六个 |
d字符 | 来自基础源字符集 (C++23 前)基础字符集 (C++23 起)去掉括号、反斜杠和空格后的字符 |
r字符序列 | 一个或多个r字符,不得包含闭序列 )d字符序列" |
r字符 | 来自源字符集 (C++23 前)翻译字符集 (C++23 起)的字符 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Vinda's Blog!
评论