我对NetBeans IDE 7.3.1中的C ++ 11支持有疑问。我使用的是Microsoft Windows 7操作系统和Minimalist GNU for Windows v4.8.1,因此使用的是g ++(GCC)v4.8.1。我还可以通过将标志auto
添加到C ++编译器来编译C ++ 11特定代码(例如std::shared_ptr
或-std=c++11
)。这可以通过NetBeans IDE的GUI实现,方法是选择项目属性, C ++编译器, C ++标准。
虽然我能够编译和运行特定于C ++的代码,但IDE的自动完成功能无法正常工作。我将用一个例子演示这种行为:
#include <iostream>
#include <memory>
int main() {
std::cout << __cplusplus << std::endl;
auto foo = 5;
auto bar = std::make_shared<std::string>();
bar.get();
}
上述代码在第7行的NetBeans IDE中导致错误:Unable to resolve identifier shared_ptr
。 但是:: STDOUT显示201103
和(正如我所说)我能够编译并运行代码。 auto
不会导致错误,顺便说一句。
当我通过选项,代码帮助, C ++编译器将宏__cplusplus
的值更改为{{1}时第7行上面的错误消失了,但我仍然在第8行得到错误:__cplusplus=201103L
。
所以我的问题是:如何在NetBeans IDE 7.3.1中激活C ++ 11的自动完成功能?我是否必须向系统添加特定目录包含或添加更多宏值?我没有修改任何默认的MinGW包含。
编辑:将NetBeans IDE中的编译器设置重置为默认值后,我没有在第7行检索错误,但仅在第8行检索错误。是否可能NetBeans没有但是C ++ 11的自动完成功能呢?
问候。