当前位置: 首页 > news >正文

建设全网营销型网站做网站和做系统的区别

建设全网营销型网站,做网站和做系统的区别,海报设计大赛,用户体验差有哪些网站使用openMVS库,在VS2022中启用c17标准编译仍然报错 现象 项目中引用了某些开源库(例如openmvs2.1.0),编译时要求启用编译器对c17的支持。 没问题!大家都知道在下图所示的位置调整C语言标准: 但是&#…

使用openMVS库,在VS2022中启用c++17标准编译仍然报错

现象

项目中引用了某些开源库(例如openmvs2.1.0),编译时要求启用编译器对c++17的支持。

没问题!大家都知道在下图所示的位置调整C++语言标准:
在这里插入图片描述
但是,打开开关之后编译,依然报错:

在这里插入图片描述
这可真是一个令人百思不得其解的错误啊。报错的文件是官方的头文件type_traits,双击之后跳转的错误位置也看不出个所以然。

在这里插入图片描述
这下头大了。不过,之前编译openmvs库时,用的是同一版本的VS编译器,怎么就成功了呢?于是查看vcpkg自动编译openmvs时用cmake配置生成的CMakeCache.txt中的编译选项,才找到了真正原因,如下图所示:

在这里插入图片描述
图中标出来的选项是cmake生成的,并不常见,至少在VS2022中没有提供开关,而只能靠用户手动输入到属性页、C/C++、命令行的其他选项框中。

报错原因:__cplusplus

__cplusplus宏是MSVC编译器预定义的宏,它的值是许多语法特性的开关。前面讲了,要启用c++17标准,就在C++语言标准设置好即可。然而,__cplusplus宏值不随上面的C++语言标准/std 选项)设置而改变,需要同时添加:/Zc:__cplusplus编译选项,才能随着语言标准而改变,如下表所示:

/Zc:__cplusplus 选项/std 选项__cplusplus 值
Zc:__cplusplus/std:c++14(默认值)201402L
Zc:__cplusplus/std:c++17201703L
Zc:__cplusplus/std:c++20202002L
Zc:__cplusplus/std:c++latest当前最新日期,目前是202002L
Zc:__cplusplus-(已禁用)任何值199711L
未指定任何值199711L

表中的/std 选项就是上一节的C++语言标准属性。
可见,如果没有添加/Zc:__cplusplus__cplusplus宏的值始终都是199711L,启用的c++17标准也是不完整的。微软这么操作的理由是:有很多老代码写得不规范(不符合语言标准),之前版本的编译器(由于对语言标准的遵守不严格)能编译通过,我们希望使用新编译器时它们的改动也尽可能小。
于是,本来支持严格的标准C++语法的编译器的默认状态仍和原来一样,__cplusplus宏的值始终是199711L;直到开发者在编译器的命令行中加入/Zc:__cplusplus,它才真正变成实际使用语言标准的值。

其实多数情况下,__cplusplus宏的值对代码编译影响不大。但是很多高水平开源库使用了新语法,恰恰需要__cplusplus宏的值符合语言标准(/std 选项)才能编译通过,这是对开源开发者很不友好的。

P.S. 官方的愿景是,有朝一日仅需要设定/std 选项__cplusplus宏的值就随之改变,不需要额外添加/Zc:__cplusplus

解决方法

属性页—C/C++—命令行—其他选项中添加:/Zc:__cplusplus。重新编译,即可。

在这里插入图片描述

扩展阅读

/Zc-cplusplus的微软官方说明
C++语言标准切换选项
官方:终于能正确设定__cplusplus值了

用/std选项确定c/c++语言标准
强制符合语法标准选项/permissive-

一点认识:MSVC的C/C++编译器默认情况下实现了当前标准和未来一些标准中的语法。当指定语言标准为默认的/std:c++14时,大部分新标准的语法将被禁用,但仍有一部分在引入/std选项之前就实现的新语法标准可用。
但指定/std:c++xx(xx>14)时,新实现的c++xx以后的语法将不可用。

http://www.yayakq.cn/news/86085/

相关文章:

  • 有趣的网站网址wordpress报名收费
  • 网站建设方案doc游戏设计
  • 户外广告外贸seo外贸推广外贸网站建设外贸网站建设
  • 龙岗网站设计资讯网站报价收费单
  • 百度 网站建设企业文化
  • 房城乡建设部门户网站设计一个网站页面需要多少钱
  • 福州网站建设liednsapp开发公司上市
  • 网站文件上传完成后打开网站显示网站建设中怎么回事?wordpress发多少文章卡
  • 有关天猫网站建设的论文网站开发90天
  • 中文wordpress网站模板下载做化妆品等的网站
  • 网站建设服务预算phpmysql网站开发全程实例 pdf
  • 大型网站的建设包括那些内容胶州网站建设dch100
  • 做改网站2015百度推广网站遭到攻击
  • 邵阳营销型网站建设电子商务实网站的建设课件
  • 布吉医院网站建设ps网站交互设计
  • 遂宁市建设银行网站手机网站 app
  • 数字媒体应用 网站开发怎样建设数字中国
  • 做h5网站要多少钱一对一直播app源码
  • 帝国cms灵动标签做网站地图建设茶网站目的
  • 刚做的网站搜索不到外贸平台排行榜前十名
  • 灰色网站响应式网站概况
  • 网上购物网站建设规划修改wordpress配置文件
  • 金融门户网站建设外贸公司的网站建设
  • 重庆做网站找谁时事热点新闻
  • 深圳的网站建设公司pestl分析网站百度收录秒收方法
  • 青岛济南网站制作商贸有限公司怎么注销
  • 德阳市网站建设品牌建设典型案例材料
  • 开锁公司做网站想建设网站
  • 域名和网站名要一样吗网站做美食视频挣钱吗
  • 公司网站建设需要资质格尔木建设局网站