为什么/如何默认包含一些C ++标头在Visual Studio中

Why / how are some c++ headers included by default in visual studio?

本文关键字:Studio Visual 包含一 何默认 默认 为什么      更新时间:2023-10-16

在Visual Studio c++中,默认情况下似乎包含一些标头。例如,我可以在不包含<string><cstring>的情况下使用std::strncpystd::string,但是如果不包含<iostream><algorithm>,我就不能使用std::coutstd::min()

然后,当我想用 g++ 在 unix 上编译源代码时,如果我忘记添加 Visual Studio 由于其隐式包含而没有让我热身的包含,我会收到编译错误。

Visual Studio 中的默认包含来自哪里?有没有办法为将来和现有的项目停用此行为?注意:我的 Visual Studio 项目没有使用预编译的标头。

Visual Studio默认不包含标头。但是,某些标头包含其他标头,因此如果包含 <iostream> ,则有时可能会在某些编译器中包含<string>,并且许多标头还包括<cstring> 。所以你自己也包括了他们,这是偶然的。

哪些标头

包括哪些其他标头因库而异,因此请始终显式包含该文件使用的标头。