GCC使用旧版本的c++

GCC using old version of C++

本文关键字:c++ 版本 GCC      更新时间:2023-10-16

我正在使用cplusplus网站教程学习c++。我正在使用以下软件:

  • CentOS 6.4
  • 代码::块10.05
  • GCC 4.4.7

这些是yum提供的最新版本。当我跟随教程时,我注意到它说的很多东西对我不起作用。例如,我不能用'u', 'u', 'L'等作为字符串的前缀。此外,'nullptr'无法识别,它会产生编译器错误。我环顾四周,注意到这些特性都是在c++ 11中添加的。所以我当然认为我必须有一个旧版本的c++。

根据本页2.2节中的GCC文档,"如果没有给出c++语言方言选项,默认值是-std=gnu++98"。

所以我想我需要指定-std=gnu++0x。我试着把它放在我的代码::块编译器参数,但它改变了什么。相反,我选中了编译器标志"让g++遵循即将到来的c++0x ISO c++语言标准[-std=c++0x]"。这也改变不了什么。

有人能告诉我我需要做什么来获得Code:: block和GCC使用当前版本的c++吗?

启用c++ 11特性的规范标志是-std=c++11,但由于GCC扩展,大多数c++ 11特性都可以开箱使用。无论如何,你都应该设置这个标志,因为当你可以采用新标准时,依赖扩展是不好的做法。

但是,你的GCC版本有点过时了。您应该从包管理器或https://www.gnu.org/software/gcc/index.html

获取最新的稳定版本。

或者,您可以尝试其他编译器,其中许多都支持c++ 11。Clang(++)是一个流行的选择。