最近观看的 CppCon 2017 视频:Boris Kolpackov “构建 C++ 模块” https://www.youtube.com/watch?v=E8EbDcLQAoc
大约在 31 点 35 分,他开始解释我们仍然应该使用标头/源拆分,并展示了 3 个原因。第一个原因:
如果您在触摸此模块时将两个声明/定义放在同一个位置,则将重新编译依赖于模块接口(BMI) 的所有其他模块。
我一点也不喜欢。听起来我们还处于 90 年代,编译器还不够聪明,无法看到与 BMI 相关的更改和与实现相关的更改的差异。正如我所看到的,编译器能够快速扫描每个模块并从中仅生成 BMI。如果 BMI 没有改变 - 不要重新编译依赖它的其他模块。
还是我错过了什么?