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
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号