根据 C++14 标准,
§2.2.1.1 [...] 接受的物理源文件字符集是实现定义的。[...]任何不在基本源字符集中的源文件字符都被指定该字符的通用字符名替换。[...]
这是否意味着 C++ 标准没有为非 UCS/Unicode 字符提供实现定义或有条件支持的支持?例如,物理源文件编码包括没有相应 UCS 代码点的字符。
我能想到的唯一想法是,如果是这种情况(编译器通过非 UCS 编码支持非 UCS 字符),编译器必须使用私有 UCS 范围来映射这些物理字符,但无论如何,该解决方案不会适合“指定该字符的通用字符名称”部分,因为私有范围内的 UCS 代码点根本没有定义任何特定字符。