根据ISO/IEC 14882:2011(§2.14.3),character-literal,也称为常量,如下所示.
character-literal:
’ c-char-sequence ’
u’ c-char-sequence ’
U’ c-char-sequence ’
L’ c-char-sequence ’
...
c-char:
any member of the source character set except
the single-quote ’, backslash \, or new-line character
escape-sequence
universal-character-name
Run Code Online (Sandbox Code Playgroud)
乍一看,似乎直接放入unicode而不是在character-literal中使用通用字符名称是非法的.然而,大多数编译器,例如g ++和visual studio c ++,都不会对它感到烦恼,这有点令人困惑.无论标准如何,每个实现在编译开始之前是否会自动将这些unicode转换为通用字符名称?
我认为第一个"翻译阶段"处理(C++ 11 2.2/1:1.):
不在基本源字符集(2.3)中的任何源文件字符将替换为指定该字符的通用字符名称.
因此,您的输入文件将在源字符集中进行编码,其中包括基本源字符集,但在程序文本中,所有非基本字符都将替换为其通用字符名称.
| 归档时间: |
|
| 查看次数: |
252 次 |
| 最近记录: |