Eclipse 3.7.1 CDT 1.4.1 GCC 4.6.2
这是一段C++ 11代码的示例:
auto text = std::unique_ptr<char[]>(new char[len]);
Run Code Online (Sandbox Code Playgroud)
Eclipse编辑器抱怨:
Function 'unique_ptr' could not be resolved
Run Code Online (Sandbox Code Playgroud)
Makefile编译工作正常.如何让Eclipse停止抱怨这些错误?
我试图在C++ 11中制作像这样的基于范围的lopp:
std::vector<Satellite> Satellites; // Class member
//...
int number = 1;
for(auto sat : this->Satellites) {
sat.setNumber(number++);
}
Run Code Online (Sandbox Code Playgroud)
而且我收到了这个警告:
'auto'改变了C++ 11中的含义; 请删除它[-Wc ++ 0x-compat]
当然我可以坚持for(Satellite sat : this->Satellites),但我试图测试auto关键字.
我曾经读过使用C++ 11可以使用auto,但是最近我发现自从C++ 0x以来它已经改变了(或者看起来它已经改变了!):
关键字auto不是新的; 它实际上可以追溯到ANSI C之前的时代.但是,C++ 11改变了它的含义; auto不再指定具有自动存储类型的对象.相反,它声明了一个对象,其类型可以从其初始化器中推导出来.从C++ 11中删除了auto的旧含义以避免混淆.
那么:我能用这样的C++ 11和我的问题是在IDE(Eclipse CDT Juno),或者我应该以不同的方式使用它(或者根本不删除auto关键字)?