将实现文件包含在其他实现文件中有什么用?[复制]

What's the use of including implementation files in other implementation files? [duplicate]

提问人:Luchian Grigore 提问时间:7/26/2012 最后编辑:CommunityLuchian Grigore 更新时间:7/26/2012 访问量:162

问:

这个问题在这里已经有答案了:
11年前关闭。

可能的重复:
#include 所有.cpp文件到一个编译单元中?

我正在MSVS中处理一个项目,其中大多数实现文件()都从构建中排除,并包含在编译的单个源文件中。.cpp

//a.cpp
#include "b.cpp"
#include "c.cpp"
//and so on...

而且由于 并且不是自己编译的,所以这没关系。b.cppc.cpp

我知道这不是标准做法,我知道陷阱,我可能不会这样做(当然,除非有人想出一个很好的理由)。

所以问题是——这种技术有什么用?它是否使编译速度更快(也考虑分布式编译环境)?

C C 可视化 C++

评论


答:

3赞 user1157123 7/26/2012 #1

这称为 unity 构建

它应该加快源代码的编译速度。

请参阅此处的相关问题,该问题提供了更多详细信息:unity构建的优点/缺点?

3赞 Sergey K. 7/26/2012 #2

另一点可能是可以自动生成某些实现文件。自动生成整个文件比处理注入现有代码的更改要容易得多。就像 C# 中的分部类一样。

评论

1赞 Mark Ransom 7/26/2012
在这种情况下,我会使用与.cpp不同的扩展名,但这是一个很好的观点。