在 C++11 标准 16.2.5 中:
The implementation shall provide unique mappings for sequences consisting of one or more nondigits or digits (2.11) followed by a period (.) and a single nondigit. The first character shall not be a digit. The implementation may ignore distinctions of alphabetical case.
我根本不明白这句话的上下文或意思?
“提供唯一映射”是什么意思?从什么到什么的映射?独特而不是什么?什么序列?
它似乎与周围的段落完全无关。
最佳答案
在典型情况下,您在#include
指令中指定的内容将是一个文件名。这就是说它不一定是文件名。 “来自什么”是指令中的字符序列(h-char-sequence
或 q-char-sequence
)。这可以映射到相同类型数据的某些(或多或少是任意的)源——例如,如果一个实现想要将 header 存储在某种数据库中,它可能会将它们映射到数据库中的记录。
至于“到什么”部分,它是故意含糊的——一个典型的实现使用文件名,但它几乎可以是任何其他东西,只要包含一个标题产生正确类型的结果——数据库记录上面提到的是一种可能性,但它旨在允许预编译头文件之类的东西,甚至将标准头文件的“知识”构建到编译器本身中,因此包含标准头文件可能只会在编译器中设置一个标志告诉它注意该 header 的内容。
关于C++ 源文件包含 "Unique Mappings"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15014593/