反正有没有找出直接包含的STL头文件?

时间:2013-09-17 05:49:18

标签: c++ stl

我们的产品使用C ++作为编程语言。使用C ++ STL的一个令人烦恼的问题是我们忘记包含必要的头文件,因为该文件可能已包含在其他一些STL头中,构建通过。例如,

在使用Xcode的Mac平台中,如果我使用std::auto_ptr而不包含memory.h但包含iostream.h,则构建将通过,但在Android平台中会失败。

但是我不希望将代码移动到Android以进行每次代码更改提交的构建检查。那么,无论如何都要避免这个问题吗?

编辑1: 我知道最好的解决方案是不要忘记包含标题。但是开发人员会犯错误。那么有什么工具可以帮助检查吗?

编辑2: 接缝不是理想的解决方案,所以我将使用vim脚本在我的编辑器中检查它,解决方案类似于https://github.com/vim-scripts/vim-cpp-auto-include/blob/master/ftplugin/cpp_auto_include.vim

2 个答案:

答案 0 :(得分:1)

您可以使用包含所有必要文件的common_includes.h文件,并将该文件包含在您需要的任何位置。这将简化情况,并有助于忘记包含一些文件。至少你会忘记它一次:)。

答案 1 :(得分:0)

我所知道的唯一工具是编译器本身。

每当问题是可移植性时,我看到的最佳解决方案是简单地为所有必需的环境设置自动构建/测试套件。然后,每当提出拉取请求时,它将在您的所有构建机器人上进行验证,如果您忘记了某些内容,您将收到警告。