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

这篇具有很好参考价值的文章主要介绍了linux如何查看编译器支持的C++版本(支持C++11、支持C++14、支持C++17、支持C++20)(编译时不指定g++版本,默认使用老版本编译)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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。

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

  • 检查是否支持C++14
g++ -std=c++14 -E - < /dev/null

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

  • 检查是否支持C++17
g++ -std=c++17 -E - < /dev/null

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

  • 检查是否支持C++20(注意20要写成2a)
g++ -std=c++2a -E - < /dev/null

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

上面都是支持情况的打印,如果不支持,会提示什么呢?

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

如图,这个环境不支持C++20

注意:编译时不指定g++版本,默认使用老版本编译(存疑)

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

但是具体默认使用哪个老版本编译,我一时半会找不到查看的方法。。。。文章来源地址https://www.toymoban.com/news/detail-433321.html

到了这里,关于linux如何查看编译器支持的C++版本(支持C++11、支持C++14、支持C++17、支持C++20)(编译时不指定g++版本,默认使用老版本编译)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【Linux】如何在 Ubuntu 上安装 Clang 编译器

    【Linux】如何在 Ubuntu 上安装 Clang 编译器

    摊主将在本文中介绍如何在 Ubuntu 上安装 Clang 编译器。 摊主的个人技术博客:https://rickyxcoder.top/ 🧑🏻‍💻 备用站点:https://rickyxcoder.gitee.io/ Clang 是一款由 LLVM 项目开发的 C、C++、Objective-C 和 Objective-C++ 编译器 。它被设计成可以替代 GCC(GNU Compiler Collection)编译器,并且在

    2024年02月04日
    浏览(10)
  • 如何在 Linux 上安装 C 和 GCC 编译器?

    如何在 Linux 上安装 C 和 GCC 编译器?

    Linux 是一组开源的类 UNIX 操作系统,Ubuntu 是一种基于 Linux 的操作系统,通常用于运行基于 Linux 的应用程序。要在 Linux 上安装 C 并在 Ubuntu 上构建和运行 C 程序文件,我们需要安装 GCC 编译器。在 Ubuntu 存储库中,GCC 编译器是我们需要安装的 构建基本 包的一部分。 我们知道

    2024年04月13日
    浏览(12)
  • Linux C++性能优化秘籍:从编译器到代码,探究高性能C++程序的实现之道

    Linux C++性能优化秘籍:从编译器到代码,探究高性能C++程序的实现之道

    随着大数据、人工智能等技术的飞速发展,程序性能优化的重要性愈发突出。优化性能可以降低资源消耗、提高系统响应速度,从而在有限的硬件资源下,实现更高的吞吐量和处理能力。此外,性能优化也有助于降低能耗、减少散热问题,延长硬件使用寿命。 Linux操作系统具

    2023年04月09日
    浏览(9)
  • 如何在Windows、Mac和Linux操作系统上安装Protocol Buffers(protobuf)编译器

    如何在Windows、Mac和Linux操作系统上安装Protocol Buffers(protobuf)编译器

    🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础入门篇)》学会Golang语言

    2024年02月11日
    浏览(16)
  • arm系列交叉编译器各版本区别

    交叉编译器的命名规则:arch [-vendor] [-os] [-(gnu)eabi] [-language] arch - 体系架构, 如arm(ARM-32bit)、aarch64(ARM-64bit)、x86等; vendor -工具链提供商,经常省略,或用 none 替代; os - 目标操作系统, 如linux,没针对具体 os 则 用 none 替代。同时没有 vendor 和os 使用一个 none 替代。

    2024年02月01日
    浏览(14)
  • 命令行中选择VC编译器版本

    有些时候需要安装多个版本的VC编译器。我们可以很方便的用Visual Studio Installer来把它们作为独立组件安装进来,,在图形界面里面也可以方便地在项目属性里修改编译器版本。但是命令行下切换就会比较麻烦,因为默认情况下开启的命令行只会加载最新版本的编译器。除非你

    2024年02月05日
    浏览(12)
  • KEIL5 各个版本编译器的下载

    KEIL5 各个版本编译器的下载

    关于下载了新版本KEIL之后,编译器版本不对导致以前的程序不能运行,有许多问题需要解决,其中编译器版本问题是个不能避免的问题; 我之前用的是V5.06 update 7(build 906)版的编译器,后来升级MDK537之后,编译器版本就变成V6.16了,因为我是卸载删除之后再升级的MDK,所以之

    2024年02月02日
    浏览(29)
  • 不同版本的 .NET Framework 下的 csc编译器的版本

    以下是不同版本的 .NET Framework 下的 csc.exe 编译器的版本: .NET Framework 2.0 - 3.5: csc.exe 版本:2.0.xxxxxx .NET Framework 4.x: .NET Framework 4.0: csc.exe 版本:4.0.xxxxxx .NET Framework 4.5 - 4.8: csc.exe 版本:4.0.xxxxxx .NET Framework 4.5.1 以及更新版本(4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8): csc.exe 版本

    2024年02月12日
    浏览(13)
  • TS编译器选项——指定编译ES版本和模块化使用规范

    TS编译器选项——指定编译ES版本和模块化使用规范

    compilerOptions是TS的编译器选项,主要在tsconfig.json文件中用于对ts编译为js文件时进行配置 \\\"compilerOptions\\\" : { 配置项 } 版本可以为如下版本:\\\'es3\\\', \\\'es5\\\', \\\'es6\\\', \\\'es2015\\\', \\\'es2016\\\', \\\'es2017\\\', \\\'es2018\\\', \\\'es2019\\\', \\\'es2020\\\', \\\'es2021\\\', \\\'es2022\\\', \\\'esnext\\\'. 版本可以为如下版本:\\\'none\\\', \\\'commonjs\\\', \\\'amd\\\', \\\'system\\\', \\\'u

    2024年02月04日
    浏览(17)
  • Matlab2022a无法识别vs2019编译器,未检测到支持的编译器,错误使用Mex -setup error cannot find support compiler

    Matlab2022a无法识别vs2019编译器,未检测到支持的编译器,错误使用Mex -setup error cannot find support compiler

    1、确定一下您的问题:错误使用Mex 2、再执行以下命令: 如果您的结果跟我一样,那么可以继续看,如果不一样,就可能不是同一个问题。 下面直接说解决方案: 3、打开powershell,执行下面命令 install-module -scope currentuser MSI 按照提示输入Y 4、继续执行命令 get-msirelatedproduct

    2024年02月06日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包