编译器是否提供自动检查每个源文件(及其关联的头文件,如果有)是否包含所有其他所需头文件的功能?或者至少发出警告,例如,如果未明确包含所需的标头?
例如,我希望编译器在我执行以下操作时报告:
header1.h
#include <string>
...
header2.h
#include "header1.h"
#include <iostream>
std::string blah; //<-- issue warning here, <string> not included explicitly
...
源代码2.cpp
#include "header2.h"
...
cout << endl; //<-- issue warning here, <iostream> not included explicitly
我正在使用 g++ 和 Visual Studio,所以我的问题主要适用于这些编译器。谢谢!