为什么/如何在Visual Studio中默认包含某些c ++头文件?

时间:2019-06-17 01:45:13

标签: c++ visual-studio

在Visual Studio c ++中,默认情况下似乎包含一些标头。 例如,我可以不包含std::strncpystd::string的情况下使用<string><cstring>,但不包含{{ 1}}或std::cout

然后,当我想使用g ++在Unix上编译源代码时,如果我忘记添加由于Visual Studio的隐含包含而无法使我满意的包含,则会出现编译错误。

默认包含的内容来自Visual Studio的什么地方?有没有办法为将来和现有的项目停用此行为?注意:我的Visual Studio项目未使用预编译的标头。

1 个答案:

答案 0 :(得分:6)

Visual Studio默认不包含标题。但是,某些标头包含其他标头,因此,如果包含<iostream>,则在某些编译器中有时可能包含<string>,而且许多标头也包含<cstring>。因此,您偶然将它们包括在内。

哪个标头包含哪些其他标头因库而异,所以请始终明确包含该文件使用的标头。