Qt VS 设置C++14/17语言标准

VS2019的C++语言标准默认是ISO C++14,可是通过VS新建的Qt工程,默认是C++11,那么如何更改为支持C++14呢

在代码中加入以下语句,可以查看正在使用中的C++标准

cout << __cplusplus << endl;
1
如果输出为199711,那么就说明使用的是C++ 98语言标准
如果输出为201103,那么就说明使用的是C++ 11语言标准

为什么VS2019项目属性里C++语言标准默认是ISO C++14,但实际的工程还是C++11呢,原因应该是这个

_ _ cplusplus 预处理器宏通常用于报告对特定版本的 C++ 标准的支持。 因为很多现有代码需要此宏的值与“199711L”匹配,所以编译器不会更改此宏的值,除非通过使用 /Zc:__cplusplus 编译器选项进行显式选择。
参考连接:/Zc:__cplusplus(启用更新的 __cplusplus 宏)

__cplusplus 选项 __cplusplus 值
c++ 98 199711L
c++11 201103L
c++14 201402L
c++17 201703L
c++20 202002L
进行如下设置即可更新宏,【右击项目】–【选择属性】–【C/C++】–【命令行】–【其他选项】,写入如下内容:

/Zc:__cplusplus
1


再次运行代码,查看输出内容,此时就变为201402,说明已经成功更新为C++14

————————————————
原文链接:https://blog.csdn.net/no_say_you_know/article/details/121426722

 

 

==================================

GCC版本对C++的支持情况

参考

C++版本 GCC版本支持情况 GCC版本 指定版本的命令标志
C++98 完全支持 是GCC 6.1之前版本的默认模式 -std=c++98 or -std=gnu++98
C++11 完全支持 从GCC4.8.1版本开始完全支持 -std=c++11 or -std=gnu++11
C++14 完全支持 从GCC 6.1版本开始完全支持,是GCC 6.1到GCC 10 (包括) 的默认模式 -std=c++14 or -std=gnu++14
C++17 完全支持 从GCC 5版本开始,到GCC 7版本,已基本完全支持。 是GCC 11版本的默认模式 -std=c++17 or -std=gnu++17
C++20 未完全支持 从GCC 8版本开始陆续支持C++20特性 -std=c++20 or -std=gnu++20 (GCC9及以前使用-std=c++2a)
C++23 未完全支持(标准还在发展中) 从GCC 11版本开始支持C++23特性 -std=c++2b or -std=gnu++2b

————————————————
原文链接:https://blog.csdn.net/red98/article/details/117767913

 

posted @   imxiangzi  阅读(681)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示