有没有办法知道哪些标头自动包含在C++中

Anu*_*hne 9 c++ clang

对此,这是一个后续问题

在C++中,与C不同,标准头文件允许#include其他标准头文件.

有没有办法知道哪些标题是自动包含的,因为可能很难猜出哪些标题是在哪些标题中定义的.

动机:我的作业在我的计算机上编译并正常工作,但是TA告诉我它没有编译,需要几个标题(互斥和算法)来编译.我怎么能确定我将来提交的代码是防弹的.

我的编译器没有给出关于隐式声明的任何警告.我正在使用clang++ -std=c++11编译我的代码.

Die*_*ühl 5

该标准列出了每个标题提供的符号.除此之外没有任何保证,既没有明确使用的符号也没有声明所有符号.您需要为您正在使用的任何名称包含每个标题.你应该不依赖于间接包含.

从积极的方面来看,标准库中没有任何标准库头需要额外标头的情况.