linux如何查看编译器支持的C++版本(支持C++11、支持C++14、支持C++17、支持C++20)(编译时不指定g++版本,默认使用老版本编译)

参考:https://blog.csdn.net/Dontla/article/details/129016157
C++各个版本
C++11
C++11是一个重要的C++标准版本,于2011年发布。C++11带来了许多重要的改进,包括:

智能指针:引入了shared_ptr和unique_ptr等智能指针,用于更好地管理动态内存分配。
新的循环语句:引入了for循环中的范围语法,以更简洁的方式遍历容器。
初始化列表:允许使用初始化列表来初始化数组和结构体等数据结构。
Lambda表达式:允许在代码中直接创建匿名函数。
多线程:引入了多线程库,用于简化多线程编程。
C++14
C++14:是C++11的一个小范围修订版本,于2014年发布,主要包括:

增加了对可变参数的支持。
增加了对类型推导的支持。
提高了constexpr函数的限制。
C++17
C++17:是C++14的一个较大范围修订版本,于2017年发布,其中一些重要的改进包括:

增加了新的文件系统库。
支持了构造函数的默认参数。
支持了结构体包含,简化了结构体的初始化。
增加了对并行编程的支持。
C++20
C++20:是C++17的一个较大范围修订版本,于2020年发布,其中一些重要的改进包括:

引入了模板参数推导。
引入了协同程序,以简化异步编程。
引入了模板类型推导,以简化模板编程。
支持了关键字import,以简化模块的导入。

查看自己的编译器支持C++哪个版本
(浪潮服务器ubuntu20.04 gcc9.4.0)

例如,检查是否支持C++11

g++ -std=c++11 -E - < /dev/null

这行代码是使用g++编译器来编译一段简单的C++代码,以检查您的系统是否支持C++11。
其中,-std=c++11选项告诉编译器使用C++11标准编译代码。
-E选项告诉编译器只进行预处理,而不进行编译和链接步骤。
最后,- < /dev/null表示将标准输入重定向到/dev/null,以便编译器不必读取任何输入。
如果命令行没有输出(或者只输出了警告信息),则说明您的系统支持C++11。如果输出了错误信息,则说明您的系统不支持C++11。
在这里插入图片描述
检查是否支持C++14

g++ -std=c++14 -E - < /dev/null

在这里插入图片描述
检查是否支持C++17

g++ -std=c++17 -E - < /dev/null

在这里插入图片描述
检查是否支持C++20(注意20要写成2a)

g++ -std=c++2a -E - < /dev/null

在这里插入图片描述
上面都是支持情况的打印,如果不支持,会提示什么呢?

(136盒子 ubuntu16.04 gcc5.4.0)在这里插入图片描述
如图,这个环境不支持C++20

注意:编译时不指定g++版本,默认使用老版本编译(存疑)
如果在编译时不指定C++的版本,那么g++编译器会使用默认的C++版本。
一般情况下,默认的C++版本可能是比较老的版本,例如C++98或C++03。
因此,如果需要使用新的C++特性,比如C++11或C++14,最好明确指定版本。

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

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

相关文章

http认证

1.Digest认证 各字段含义&#xff1a; Nonce 服务器直接返回的数据 H1MD5(user”:”realmpassword) H2MD5(method”:”url) method为请求类型、url不包括域名 Nc 指当前的第几次请求&#xff0c;使用8位16进制显示 Cnonce 8位随机字符串 ResponseMD5(H1”:”nonce”:”…

【C++语言】冲突-C语言:命名冲突(输入输出、缺省参数、引用、内联函数)

文章目录 前言正文2. C的输入与输出&#xff1a;3.缺省参数3.1 缺省参数的概念&#xff1a;3.2 缺省参数的分类&#xff1a;全缺省参数&#xff1a;半缺省参数&#xff1a; 4.函数重载4.1 函数重载的概念&#xff1a; 5.引用5.1 引用的基本概念&#xff1a;5.2 引用的特性&…

系统工程学思想

系统工程学思想 大项目或复杂问题的实施和解决&#xff0c;需要按照系统工程学理论进行&#xff0c;以系统的方法完整、全面的分析&#xff0c;而不是零星的处理问题&#xff0c;沿着逻辑推理的路径&#xff0c;去解决哪些原本靠直觉判断处理的问题。 系统分析过程逻辑结构分为…

A Review on Influence Dissemination in Social Networks

Abstract 影响力传播研究是社交网络信息传播的关键问题。由于影响力分析在营销、广告、个性化推荐、舆情监测等方面的现实意义&#xff0c;研究人员从不同角度研究了该问题并提出了解决方案。在本文中&#xff0c;我们回顾了社交网络中的影响力传播&#xff0c;并得出结论&…

淘宝APP详情数据抓取技术揭秘:用Python实现自动化数据获取(附代码实例)

获取淘宝APP详情数据接口通常涉及到网络爬虫技术&#xff0c;因为淘宝作为一个大型电商平台&#xff0c;其数据并不直接对外公开提供API接口供第三方开发者使用。然而&#xff0c;通过模拟浏览器行为或使用淘宝开放平台提供的API&#xff08;如果有的话&#xff09;&#xff0c…

借助剪映软件生成原创视频(真人人声,免VIP)

civilpy&#xff1a;借助各大模型的优点生成原创视频&#xff08;真人人声&#xff09;Plus0 赞同 0 评论文章​编辑 是的&#xff0c;剪映也出了声音克隆了&#xff0c;只需要十几秒的录音就可以克隆自己的声音&#xff0c;虽然微瑕&#xff0c;但是对于不习惯机器音的很多创…

【面试】Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?

Elasticsearch 在部署时&#xff0c;对 Linux 的设置有哪些优化方法&#xff1f; Elasticsearch是一个分布式搜索和分析引擎&#xff0c;它在Linux环境下的性能和稳定性可以通过一些优化方法进行提升。以下是一些针对Linux环境下Elasticsearch部署的优化方法&#xff1a; 1. 内…

职场人必备!效率翻倍的多微信号必备管理工具大揭秘

在职场中&#xff0c;高效率的工作方式是非常重要的。而为了提高工作效率&#xff0c;合理运用一些工作神器也是必不可少的。今天给大家分享一个多微信号管理工具——微信管理系统&#xff0c;它能够帮助职场人员管理多个微信号&#xff0c;让工作变得更加高效。 首先&#xf…

嵌入式开发——基础元器件

目录 1. 电阻 2. 电容 3. 电感 4. 二极管 5. 三极管 6. MOS管 7. 晶振 8. 磁珠 9. LDO 10. 电源 11. 接地 12. 线路 13. 电压表 14. 电流表 1. 电阻 根据欧姆定理&#xff0c;UI*R&#xff0c;通过某段导体的电流跟这段导体两端的电压成正比&#xff0c;跟这段导…

教你六个步骤完成本地知识库搭建

用通俗易懂的语言说&#xff0c;本地知识库就是一个放在公司电脑或服务器上的知识大宝库。这个宝库里可以放入各种知识&#xff0c;比如公司的规章制度、产品介绍、销售技巧、市场分析报告等等&#xff0c;只要是公司里觉得有用的知识&#xff0c;都可以放进去。 有了它&#x…

如何本地部署Elasticsearch+cpolar实现公网查询与管理内网数据

文章目录 系统环境1. Windows 安装Elasticsearch2. 本地访问Elasticsearch3. Windows 安装 Cpolar4. 创建Elasticsearch公网访问地址5. 远程访问Elasticsearch6. 设置固定二级子域名 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的 人工智能学习网站&#xff…

Mysql高阶语句—子查询、视图、NULL

目录 一、子查询 1.1 select 1.1.1 相同表查询 1.1.2 多表查询 1.1.3 NOT 取反,将子查询的结果&#xff0c;进行取反操作 1.2 insert 1.3 update 1.4 delete 1.5 exists 1.6 as别名 二、MySql视图 2.1 创建单视图表 2.2 创建多视图表 2.3修改视图表数据 2.4…

Gui guider使用自定义字体总结

在实际开发中&#xff0c;我们通常是使用自定义字体。 在 LVGL 中&#xff0c;用户需要使用自定义的字库&#xff0c;其实现方法可分为两类&#xff1a; ① 通过 C 语言数组&#xff08;内部读取&#xff09;&#xff1b; ② 通过文件系统读取字库&#xff08;外部读取&#…

Databend 开源周报第 137 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 支持查询匹配倒…

大型网络游戏设计与AI赋能-4

接上文---- 第一个要去搭建的就是这个运行平台层。在此之上&#xff0c;我们会引入一些第三方SDK包。 为什么要引入第三方的SDK包&#xff1f;大家要知道一点&#xff0c;任何研发一款软件从来都不会从头造轮子。就是我们在开发一款软件的时候&#xff0c;从来都不会从头造轮子…

PyTorch使用cuda场合与Apple M1的GPU MPS的转换

此示例仅仅是一个简单的VGG模型调用。

T2. 排队选人 - 小米前端笔试编程题解

考试平台&#xff1a; 赛码 题目类型&#xff1a; 20道选择 2道编程题 考试时间&#xff1a; 2024-03-23 &#xff08;两小时&#xff09; 题目描述 小D是一名老师&#xff0c;他想选出一些同学参加一个团体比赛。 总共有n个同学&#xff0c;每个同学有一个能力值x和一个合作…

深入探讨iOS开发:从创建第一个iOS程序到纯代码实现全面解析

iOS开发作为移动应用开发的重要领域之一&#xff0c;对于开发人员具有重要意义。本文将深入探讨iOS开发的各个方面&#xff0c;从创建第一个iOS程序到纯代码实现iOS开发&#xff0c;带领读者全面了解iOS应用程序的开发流程和技术要点。 &#x1f4f1; 第一个iOS程序 在创建第…

【数据结构】 HashMap源码分析(常量+构造方法+方法)

文章目录 HashMap源码分析一、成员常量二、构造方法三、方法1.此时假定为进行了无参构造&#xff0c;没有分配内存2.当发生有参构造时&#xff0c;完成对容量的大小判断后&#xff0c;将容量大小&#xff0c;传进tableSizeFor方法中&#xff1a; HashMap源码分析 一、成员常量…

IDEA2023版本创建spring boot项目时,Java版本无法选择Java8问题解决

先简单说下出现本问题的原因&#xff1a; spring boot3.0发布时提到未来Java17将会成为主流版本&#xff0c;所有的Java EE Api都需要迁移到Jakarta EE上来。而spring boot3.0及以上版本已经不支持Java8了&#xff0c;支持Java17及以上版本。同时官方支持项目初始化的 Spring B…