我正在使用cplusplus网站教程学习C ++。我正在使用以下软件:
这些是yum提供的最新版本。当我按照教程进行操作时,我注意到它所说的很多东西对我来说都不起作用。例如,我不能在字符串前加上'u','U','L'等。此外,'nullptr'无法识别,它会产生编译错误。我环顾四周,注意到这些功能是在C ++ 11中添加的。所以我当然认为我必须有一个旧版本的C ++。
根据this page第2.2节中的GCC文档,“默认情况下,如果没有给出C ++语言方言选项,则为-std = gnu ++ 98”。
所以我想我需要指定-std = gnu ++ 0x。我尝试将它放在我的Code :: Blocks编译器参数中,但它没有改变任何东西。相反,我检查了编译器标志“让g ++遵循即将到来的C ++ 0x ISO C ++语言标准[-std = c ++ 0x]”。这也没有改变任何事情。
有人可以告诉我我需要做些什么才能让Code :: Blocks和GCC使用当前版本的C ++?
答案 0 :(得分:1)
启用C ++ 11功能的规范标志是-std=c++11
,但是大多数C ++ 11功能都应该开箱即用,这要归功于GCC扩展。你应该设置标志,因为当你可以采用新标准时依赖扩展是不好的做法。
但是,您的GCC版本有点过时了。您应该从软件包管理器或https://www.gnu.org/software/gcc/index.html
中获取最后一个稳定版本或者,您可以尝试其他编译器,其中很多都支持C ++ 11。 Clang(++)是一个受欢迎的选择。