假设我有一个包含许多目标文件的大型系统,因此链接时间是个问题。还假设我知道我系统中的许多类和函数没有在它们的翻译单元之外使用。
- 假设如果我减少带有外部链接的符号数量,我的链接时间会减少是否合理?
- 如果是这样,将仅在单个 TU 中使用的实体(例如,类和函数)放入未命名的命名空间对我有什么好处?从技术上讲,具有外部链接的实体将在未命名的命名空间中保留其外部链接,但是,正如 C++11 标准所述,
尽管未命名命名空间中的实体可能具有外部链接,但它们实际上是由其翻译单元唯一的名称限定的,因此永远无法从任何其他翻译单元看到。
链接器算法是否基于以下知识执行优化:在未命名的命名空间中具有外部链接的实体在其命名空间之外不可见?