我正在学习C++,我遇到了这个问题。我写了几行简单代码只是想测试“auto”,看起来它不再起作用。我粘贴我的代码如下:错误:ISO C禁止声明“测试”没有类型
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
auto test=1;
return 0;
}
然后标题中的错误报告。我使用NetBeans IDE。任何意见,将不胜感激。
我正在学习C++,我遇到了这个问题。我写了几行简单代码只是想测试“auto”,看起来它不再起作用。我粘贴我的代码如下:错误:ISO C禁止声明“测试”没有类型
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
auto test=1;
return 0;
}
然后标题中的错误报告。我使用NetBeans IDE。任何意见,将不胜感激。
要使用新的C++ 11的含义auto
,您必须有一个兼容的编译器,并告诉它源文件正在使用C++ 11功能。使用-std=c++11
启用此功能。
问题是,您的编译器不支持C++ 11 auto
,或者它已禁用(C++ 03模式)。
因此auto
关键字,而不是含义类型推断,是一个存储修饰符。然后该类型丢失。
谢谢。但是,我应该如何配置C++编译器以便支持auto?我遵循andre的链接(http://stackoverflow.com/questions/11921138/netbeans-cc-7-2-std-c11-not-recognized-by-gcc-v4-6-or-lower/11942017#11942017),并将-std = C++ 0x添加到“项目属性”>“其他选项”。不幸的是,这是行不通的。 – user2233131
@ user2233131:如果'-std = C++ 11'或'-std = C++ 0x'正在破坏事物,请尝试使用'-std = gnu ++ 11'而不是 –
IDE给了我这个错误:cc1plus:error :无法识别的命令行选项“-std = gnu ++ 11”。 -std = C++ 11和-std = C++ 0x也是如此。 – user2233131
但是,我应该如何配置我的C++编译器以便支持auto? – user2233131