C++模块是否使未命名的命名空间变得多余



C++20引入了模块。任何未在模块中导出的符号都具有模块内部链接。而未命名命名空间提供了一种机制,使未命名命名空间内的定义具有文件内部链接。这是否意味着,当模块成为C++社区的常见做法时,未命名的名称空间将来将变得毫无用处?

否:由于(许多(编译器一次只能看到一个翻译单元,因此优化指示一个实体不能用于任何其他实体仍然很有用。它还避免了模块单元之间发生意外碰撞的可能性(即使这些碰撞的可能性应该比使用更宽的代码库的可能性更小(。

相关内容

  • 没有找到相关文章

最新更新