2013-04-01 46 views
1

我正在学习C++,我遇到了这个问题。我写了几行简单代码只是想测试“auto”,看起来它不再起作用。我粘贴我的代码如下:错误:ISO C禁止声明“测试”没有类型

#include <iostream> 
using namespace std; 
int main(int argc, char** argv) { 
    auto test=1; 
    return 0; 
} 

然后标题中的错误报告。我使用NetBeans IDE。任何意见,将不胜感激。

+0

但是,我应该如何配置我的C++编译器以便支持auto? – user2233131

回答

0

要使用新的C++ 11的含义auto,您必须有一个兼容的编译器,并告诉它源文件正在使用C++ 11功能。使用-std=c++11启用此功能。

2

问题是,您的编译器不支持C++ 11 auto,或者它已禁用(C++ 03模式)。

因此auto关键字,而不是含义类型推断,是一个存储修饰符。然后该类型丢失。

+0

谢谢。但是,我应该如何配置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

+0

@ user2233131:如果'-std = C++ 11'或'-std = C++ 0x'正在破坏事物,请尝试使用'-std = gnu ++ 11'而不是 –

+0

IDE给了我这个错误:cc1plus:error :无法识别的命令行选项“-std = gnu ++ 11”。 -std = C++ 11和-std = C++ 0x也是如此。 – user2233131

相关问题