解决 Visual C++ 17.5 __cplusplus 始终为 199711L 的问题

目录

  • 软件环境
  • 问题描述
  • 查阅资料解决问题
  • 参考文献

软件环境

Visual Studio 2022, Visual C++, Version 17.5.4

问题描述

在应用 https://github.com/ToniLipponen/cpp-sqlite 的过程中,发现源代码文件 sqlite.hpp 中,有一处宏,和本项目的 C++ Language Standard 有关,如下图所示:
在这里插入图片描述将鼠标悬停在 __cplusplus 这个宏上,可以看到它的值展开为:199711L。现在我们更改本项目的 C++ Language Standard,从默认值 Default (ISO C++14 Standard) 更改为 ISO C++17 Standard (/std:c++17),如下图所示:
在这里插入图片描述
然而,__cplusplus 宏的值依然是 199711L。无论将 C++ Language Standard 改为任何值,__cplusplus 宏的值都被展开为 199711L,始终没有改变。这是为什么呢,如何纠正这个问题呢?

查阅资料解决问题

通过检索,发现微软官方文档中说明了这个问题:/Zc:__cplusplus (Enable updated __cplusplus macro)

这篇文章里面简单来说,讲的就是这个意思:自从 Visual Studio 2017 Version 15.7 以来,Visual C++ 中增加了一个编译选项:/Zc:__cplusplus,这个编译选项默认是关闭的,只有打开了这个编译选项,__cplusplus 这个宏才能被正确地更新为 C++ Language Standard 对应的值。

进行以下 2 步操作:

  1. 本项目的 C++ Language Standard,从默认值 Default (ISO C++14 Standard) 更改为 ISO C++17 Standard (/std:c++17)。
  2. 如下图所示,在项目属性的 C/C++ | Command Line 中,增加:/Zc:__cplusplus

在这里插入图片描述
然后,再看看代码编辑器中源代码文件 sqlite.hpp 的 __cplusplus 宏:
在这里插入图片描述
将鼠标悬停在 __cplusplus 宏上面,可以看到它已经展开为 201703L 这个值。与我们的预期相符。

微软的官方文档中是这样解释当 /Zc:__cplusplus 编译开关打开或者关闭时 __cplusplus 宏的取值情况的:
在这里插入图片描述

参考文献

  1. /Zc:__cplusplus (Enable updated __cplusplus macro)
  2. How are the __cplusplus directive defined in various compilers?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/710307.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

R语言数据分析案例27-使用随机森林模型对家庭资产的回归预测分析

一、研究背景及其意义 家庭资产分析在现代经济学中的重要性不仅限于单个家庭的财务健康状况,它还与整个经济体的发展紧密相关。家庭资产的增长通常反映了国家经济的整体增长,而资产分布的不均则暴露了经济不平等的问题。因此,全球视角下的家…

好像也没那么失望!SD3玩起来,Stable Diffusion 3工作流商业及广告设计(附安装包)

今天基于SD3 base 工作流来尝试进行下广告设计,这要是一配上设计文案,视觉感就出来了。下面来看看一些效果展示~ SD3 Medium模型及ComfyUI工作流下载地址:文末领取! 1.清凉夏日——西瓜音乐会 提示词: a guitar wi…

基于springboot实现火锅店管理系统项目【项目源码+论文说明】

基于springboot实现火锅店管理系统演示 摘要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装火锅店管理系统软件来…

LabVIEW软件开发任务的工作量估算方法

在开发LabVIEW软件时,如何准确估算软件开发任务的工作量。通过需求分析、功能分解、复杂度评估和资源配置等步骤,结合常见的估算方法,如专家判断法、类比估算法和参数估算法,确保项目按时按质完成,提供项目管理和资源分…

机器学习笔记 - 用于3D点云数据分类的Point Net的训练

一、数据集 ShapeNet 是一项持续不断的努力,旨在建立一个注释丰富的大型 3D 形状数据集。我们为世界各地的研究人员提供这些数据,以支持计算机图形学、计算机视觉、机器人技术和其他相关学科的研究。ShapeNet 是普林斯顿大学、斯坦福大学和 TTIC 研究人员的合作成果。 Shape…

Vue43-单文件组件

一、脚手架的作用 单文件组件:xxx.vue,浏览器不能直接运行!!! 脚手架去调用webpack等第三方工具。 二、vue文件的命名规则 建议用下面的两种方式。(首字母大写!!!&#x…

思维+暴力,CF992D - Nastya and a Game

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 992D - Nastya and a Game 二、解题报告 1、思路分析 这个题题目很吓人 因为看起来前缀和根本存不下,似乎没法算 这也提示我们似乎只需在小范围内枚举求解即可 题目的P / K SUM也保证了我们…

Mac M3 Pro安装Hadoop-3.3.6

1、下载Hadoop安装包 可以到官方网站下载,也可以使用网盘下载 官网下载地址:Hadoop官网下载地址 网盘地址:https://pan.baidu.com/s/1p4BXq2mvby2B76lmpiEjnA?pwdr62r提取码: r62r 2、解压并添加环境变量 # 将安装包移动到指定目录 mv …

北斗三代一体式数传终端短报文

北斗三代一体式数传终端短报文M20C-V30针对船载通信和导航应用推出的一款支持北斗 RDSS/RNSS 功能的船载一体机。北斗数传终端内部集成了北斗多频天线、射频、基带以及主控等功能单元,可实现 RDSS 定位、短报文通信和 RNSS 导航定位等功能。M20C-V30型北斗数传终端体…

11.3 Go 标准库的使用技巧

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

Redis通用命令

Redis是一种高性能的开源内存数据结构存储,用作数据库、缓存和消息代理。它支持多种数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)及有…

CAPL通过addTimeToMeasurementStartTime或者getLocalTime获取本地时间

文章目录 getLocalTimeaddTimeToMeasurementStartTimegetLocalTime long tm[9]; getLocalTime(tm); // now tm contains the following entries: // tm[0] = 3; (seconds) // tm[1] = 51; (minutes) // tm[2] = 16; (hours)

普通LED显示屏与柔性LED显示屏如何选择?

在数字化时代的浪潮中,LED显示屏作为信息展示的重要媒介,其市场发展迅速,产品种类也日益丰富。面对普通LED显示屏与柔性LED显示屏两种选择,消费者和企业常常陷入纠结。那么,究竟该如何选择呢?让我们来深入探…

(done) 什么是 perplexity 困惑度?

参考:https://www.youtube.com/watch?vB_2bntDYano 困惑度 perplexity 是一种用来衡量语言模型性能的度量,类似于交叉熵。 困惑度越低越好,越低说明一个模型越好。 一个典型的公式在下面:

DataFrames相关介绍文件读取

目录 1.初识DataFrame 2.DataFrame的构造函数 3.数据框的轴 4.CSV文件读取 5.Excel文件读取 1.初识DataFrame (1)昨天,我们学习了Series。而Pandas的另一种数据类型:DataFrame,在许多特性上和Series有相似之处。 …

嵌入式linux中内存管理基本原理

各位开发者,大家好,今天主要给大家分享一下,如何使用linux系统中的内存管理。 前面我们学习了很多Linux内存方面的知识,比如:虚拟地址空间,进程空间,内存映射,页表机制等,我们学了这么多知识,似乎对Linux内存似懂非懂,为什么会出现这样的问题?原因在于我们缺…

GLS-3004K 端子排静态双位置继电器 AC115V 导轨安装约瑟 JOSEF

系列型号: GLS-3002K端子排静态双位置继电器; GLS-3204K端子排静态双位置继电器; GLS-3220端子排静态双位置继电器; GLS-3004K端子排静态双位置继电器; 一、用途 GLS系列端子排静态双位置继电器用于交直流操作的各种保护与自动控制系统中,作为…

抖音视频素材在哪找无版权?免版权可以剪辑视频素材网站分享

在抖音视频制作中,素材的选择至关重要。今天,我就为大家推荐几个宝藏网站,帮你找到既好用又无版权纠纷的视频素材。无论你是新手还是老手,这些网站都能满足你的需求。 蛙学府 首先推荐的是蛙学府。这个网站提供丰富的视频素材&am…

单调栈——AcWing.830单调栈

单调栈 定义 单调栈是一种特殊的数据结构,栈内元素保持某种单调性(通常是单调递增或单调递减)。 运用情况 求解下一个更大元素或下一个更小元素。计算每个元素左边或右边第一个比它大或小的元素。 注意事项 要明确单调栈是递增还是递减…

Leetcode 剑指 Offer II 082.组合总和 II

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer(专项突击版)系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给定一个可能有重复数字的整数数组 candidates 和一个目标数 tar…