12

C++98 显然将此作为编译阶段的标准之一。这是什么意思,为什么最初执行?

4

1 回答 1

11

通用字符名称看起来像\uFFFDor \U0010FFFD。这是一种在源代码中编写字符的方法,其中源代码编码不包含该字符。

C++ 指定在翻译的第一阶段将不在基本源字符集中的字符转换为通用字符名称。这样做的原因是通用字符名称和不在基本源字符集中但在源字符集中的字符得到相同的处理。

as-if规则意味着实际上并不需要实现来执行此通用字符名称转换,只要它将作为通用字符名称编写的扩展字符与在源中按字面出现的扩展字符相同对待。

于 2012-06-17T19:19:56.600 回答