解决隐含的想法包含在C,C++中

Val*_*itz 6 c c++

我刚想出了一个解决问题的想法并想分享它.对不起,如果太平庸.

因此,我正在审查的一个大型C++项目包含许多依赖于其他包含但未包含所需包含的符号的包含.构建过程中的任何轻微更改都会导致"缺少符号"失败.

因此,为了立即检查所有自包含的包含,我搜索所有*.h,动态创建一个cpp文件,该文件只包含带有此.h文件的#include -statement并尝试编译它.最后,我获得了一个"好"和"坏"包含文件的列表.酷不是它:-)还是有一个更简单的解决方案吗?

Kle*_*ist 12

如果每个.cpp文件首先包含它自己的头文件,然后是其他头文件,那么您将在不使用外部工具的情况下进行此检查.

这实际上是Googles C++ Style Guide的一部分,原因同样如下:

首选排序减少了隐藏的依赖关系.我们希望每个头文件都可以自己编译.实现这一目标的最简单方法是确保它们中的每一个都是第一个.h文件#included in some .cc.

如果你有任何头文件没有相应的.cpp文件,你必须为他们做一些特殊的事情.

  • 很遗憾,您无法使用此样式的预编译标头:\ (2认同)