如何在这个 g++ 中应用 C++17 标准?

问题描述

我的 g++ 版本是 Ubuntu 5.4.0:

    g++ --version
    g++ (Ubuntu 5.4.0-6ubuntu1~16.04.12)

从手册页,我看到:

       c++14
       c++1y
           The 2014 ISO C++ standard plus amendments.  The name c++1y is deprecated.

       gnu++14
       gnu++1y
           GNU dialect of -std=c++14.  The name gnu++1y is deprecated.

       c++1z
           The next revision of the ISO C++ standard,tentatively planned for 2017.  Support
           is highly experimental,and will almost certainly change in incompatible ways in
           future releases.

这是否意味着 c++17 的“-std=c++1z”?我对 c++17 应该使用什么感到困惑,因为有些程序只是直接使用“-std=c++17”并使用这个 g++ 成功编译。

解决方法

这 3 个步骤可以将 Ubuntu gcc/g++ 从默认 5.4.0 更新到 8:

  1. sudo add-apt-repository ppa:ubuntu-toolchain-r/test
  2. sudo apt-get 更新
  3. sudo apt-get install gcc-8 g++-8

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...