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,最好明确指定版本。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我与CSDN的故事(一)

机缘 2020年10月&#xff0c;我与编程和CSDN的奇妙机缘就此开启。 高考失利后&#xff0c;我踏入了一所专科院校&#xff0c;计算机专业成为我带着一丝迷茫与一丝希望的选择。那时的我&#xff0c;对电脑几乎一无所知&#xff0c;更别提编程了。我之所以选择它&#xff0c;仅…

day12-数据统计(Excel报表)

1. 工作台 1.1 需求分析和设计 1.1.1 产品原型 工作台是系统运营的数据看板&#xff0c;并提供快捷操作入口&#xff0c;可以有效提高商家的工作效率。 工作台展示的数据&#xff1a; 今日数据订单管理菜品总览套餐总览订单信息 原型图&#xff1a; 名词解释&#xff1a; 营…

Unity数独完整源码

支持的Unity版本&#xff1a;2018.1或更高。 这是一套完整且高效的数独源码&#xff0c;默认是9x9&#xff0c;有上千种关卡文件&#xff0c;4种难度&#xff0c;内有关卡编辑器&#xff0c;可扩展至4x4、6x6的关卡&#xff0c;还有英文文档对源码各方面可配置的地方进行说明&…

看奈飞三体魔改 赏国产《三体》预告片AI重制版

看奈飞三体魔改 赏国产《三体》预告片AI重制版 In the vast expanse of the universe, secrets await to be uncovered. 宇宙无垠&#xff0c;秘密待揭。 A signal from the depths of space leads to an encounter with an alien civilization - the Trisolarans. 深空信号引…

20240320-1-梯度下降

梯度下降法面试题 1. 机器学习中为什么需要梯度下降 梯度下降的作用&#xff1a; 梯度下降是迭代法的一种&#xff0c;可以用于求解最小二乘问题。在求解损失函数的最小值时&#xff0c;可以通过梯度下降法来一步步的迭代求解&#xff0c;得到最小化的损失函数和模型参数值。…

ADAS多传感器后融合算法解析-下篇

ADAS多传感器后融合算法解析-下篇 在ADAS多传感器后融合(上)中我们介绍了后融合的接口、策略。本文将主要介绍后融合的实现流程、难点及注意事项。 附赠自动驾驶学习资料和量产经验&#xff1a;链接 二、后融合处理流程 如下图为基本RC后融合系统流程图&#xff0c;接下来将…

CKS之容器进程分析工具:Sysdig

Sysdig介绍 Sysdig 是一款集多种功能于一体的强大系统监控、分析和故障排查工具。它综合了 strace、tcpdump、htop、iftop 以及 lsof 等工具的功能&#xff0c;能够提供系统资源利用率、进程活动、网络连接以及系统调用等详细信息。Sysdig 不仅能够捕获大量系统运行数据&#x…

【包邮送书】一本书掌握数字化运维方法,构建数字化运维体系

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

SV-7045V网络草坪音箱 室外网络广播POE供电石头音箱

SV-7045V网络草坪音箱 室外网络广播POE供电石头音箱 描述 IP网络广播草坪音箱 SV-7045V是深圳锐科达电子有限公司的一款防水网络草坪音箱&#xff0c;具有10/100M以太网接口&#xff0c;可将网络音源通过自带的功放和喇叭输出播放&#xff0c;可达到功率20W。用在公园&#…

2169: 【优先队列】合并果子

题目描述 在一个果园里&#xff0c;多多已经将所有的果子打了下来&#xff0c;而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。 每一次合并&#xff0c;多多可以把两堆果子合并到一起&#xff0c;消耗的体力等于两堆果子的重量之和。可以看出&#xff…

聚合支付备案新增机构名单公布,14家机构成功备案

孟凡富 3月27日&#xff0c;中国支付清算协会公布了最新一批收单外包服务机构备案机构结果&#xff0c;总备案机构为27000家&#xff0c;新增备案机构为648家&#xff0c;其中&#xff0c;新增聚合支付技术服务备案机构包括北京鑫杰华誉、深圳中峻、多点(深圳)数字科技、扬州泽…

代码随想录day35|860.柠檬水找零 、406.根据身高重建队列 、 452. 用最少数量的箭引爆气球

860. 柠檬水找零 这道题的思路十分简单&#xff0c;就是根据自己的钱进行找零&#xff0c; 什么时候贪心 ——就是二十块找零&#xff0c;有两种策略&#xff0c;第一种是一张十块&#xff0c;一张五块&#xff0c;第二种是三张五块&#xff0c;因为五块的可使用率更高&…

day53 动态规划part10

121. 买卖股票的最佳时机 简单 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可…

1111111111111111111111111111111111

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

docker的安装和镜像的拉取

一、 如果自己以前安装的docker有残留&#xff0c;不想要了&#xff0c;可以使用下面命令卸载&#xff1a; yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-en…

LeetCode-热题100:56. 合并区间

题目描述 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 示例 1&#xff1a; 输入&#xff1a; inte…

接口自动化测试流程、工具与实践详解

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、接口自动化测试简介 接口自动化测试是指通过编写脚本或使用自动化工具&#xff0c;对软件系…

conda删除虚拟环境

基于大模型生成 在 Anaconda 或 Miniconda 中&#xff0c;要删除已经创建的虚拟环境&#xff0c;您可以按照以下步骤操作&#xff1a; 打开 Anaconda Prompt&#xff08;Windows&#xff09;或终端&#xff08;Linux/macOS&#xff09;。 确保您当前不在要删除的虚拟环境下&am…

在企业微信里面添加h5页面 进行登录授权

1.需求&#xff1a;在企业微信里面添加h5页面 进行登录授权&#xff0c;获取到用户的code&#xff0c;进行登入id的验证 2.步骤&#xff1a; 根据企业微信开发者中心中构造网页授权链接进行授权 在企业微信内部进行配置&#xff0c;拿到appid&#xff0c;redirect_uri&#x…

Python实现一个简单的银行管理系统GUI应用

介绍 在本教程中&#xff0c;我们将创建一个基本的银行管理系统GUI应用&#xff0c;用户可以通过图形界面执行各种银行操作。我们将使用Python编程语言和Tkinter库来实现此应用。 使用说明 需要安装Python解释器&#xff0c;以及PythonCharm &#x1f449; 点我去下载 效果图…