我是 C++ 新手。当我写
for (char* c : v)
{
cout << c;
}
我明白了
“C++98 模式下不允许基于范围的‘for’循环”
据我了解,我必须更改我的 GCC 版本(或只是模式?)。我的g++ -v
:
使用内置规范。COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.7/lto-wrapper 目标:i686-linux-gnu 配置:../src/configure -v --with-pkgversion='Ubuntu/ Linaro 4.7.2-2ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.
无法从 vim(使用 c.vim 插件)、sublime text3 以及使用gcc program.cpp
and的终端编译gcc -pedantic -std=c99 program.cpp
。
我已经下载了 gcc 4.8.1 但它不是 deb 包所以无法正确安装。还听说过 C++11、C++14、C++98、C++99。我在哪里/如何获取/安装最新版本?
vim插件c.vim的解决方案:
编辑“c.vim/plugin/c.vim”。更改此行
let s:C_CplusCFlags = '-Wall -g -O0 -c -std=c++11' " C++ compiler flags: compile, don't optimize
我添加了“-std=c++11”并且它有效。