生成C ++项目时,Visual Studio CE 2019和Visual Studio CE 2015有什么区别?

问题描述

我在VS CE 2019中打开了一个解决方案文件,并尝试构建该解决方案,结果出现了许多C2039错误,说某些东西不是std名称空间的成员。通过添加适当的include语句可以解决这些问题。当我在VS CE 2015中打开相同的解决方案(由该项目的README指定)时,没有对代码进行任何更改,因此我仅用警告就可以构建和运行该程序。我不确定要搜索什么,以便找到有关导致此问题的版本之间差异的更多信息。

解决方法

当代码依赖于库头文件之间的间接包含时,就会发生这种情况,而标准文件没有对它们进行强制要求或保证,并且每个版本之间都可能会发生变化。

What's new for C++ in Visual Studio 2019年开始:

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

,

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...