繁体   English   中英

在构建 C++ 项目时,Visual Studio CE 2019 和 Visual Studio CE 2015 之间有什么区别?

[英]What differences are there between Visual Studio CE 2019 and Visual Studio CE 2015 when building C++ projects?

我在 VS CE 2019 中打开了一个解决方案文件并尝试构建解决方案,结果出现了很多 C2039 错误,指出某些东西不是 std 命名空间的成员。 这些可以通过添加正确的包含语句来解决。 当我在 VS CE 2015 中打开相同的解决方案(由该项目的 README 指定)而不更改代码时,我能够构建和运行程序,但只发出警告。 我不确定要搜索什么才能找到有关导致此问题的版本之间差异的更多信息。

当代码依赖于库 header 文件之间的间接包含时会发生这种情况,这些文件不是标准强制要求或保证的,并且可以在版本之间更改。

来自Visual Studio 2019 中 C++ 的新增功能

优化标准库物理设计,避免编译不直接包含的标准库部分。 此更改将仅包含<vector>的空文件的构建时间缩短了一半。 因此,您可能需要为以前间接包含的标头添加#include指令。 例如,使用std::out_of_range out_of_range 的代码现在可能需要添加#include <stdexcept> 使用 stream 插入运算符的代码现在可能需要添加#include <ostream>

这可能是因为该项目依赖于一些标准库头文件,包括其他标准库头文件,这是可能的,但不能保证。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM