在netbeans ide 7.1.1中是否支持c ++ 11

时间:2012-04-10 05:59:08

标签: c++ multithreading netbeans scheduler

我需要问一下netbeans 7.1.1中是否支持c ++ 11(使用libaries作为线程,chrono)。

我有这个代码: -

#include<thread>
#include<chrono>
while(true)
{
std::this_thread::sleep_for(std::chrono::seconds(1));   <- there is an error at 
"this_thread" 

test4();
}

实际上我正在制作一些在每分钟后调用此函数的东西(我的意思是当系统时间改变一分钟时)

感谢

2 个答案:

答案 0 :(得分:5)

这里有三件事(编译器,IDE和操作系统)非常重要。

1)编译器:GCC 4.6已经具有良好的C ++ 11支持,并且具有<thread><chrono>标头。但您必须使用-std=c++0x进行编译。如果使用IDE,则必须将其配置为生成make(因此请检查编译器选项)

2)OS也很重要:<thread>标题本质上是围绕ptherad,mutex和condition_variable的POSIX概念的一组包装器。在Windows上,condition_variable本身仅存在于0x600(Vista),最多为0x505(XP),您必须处理本机“同步EVENT对象”,这可能是等效的,具有不同的语义(boost::thread实现适配器,但GCC 只是跳过整个线程实现:因此......如果您正在编写更多操作系统,请检查您是否使用了所有操作系统中存在的库实现!)

3)IDE也很重要:编辑器解析文本和显示完成信息的方式,以及“输入时的语法错误”等等,不依赖于编译器,而是依赖于他们使用的解析器。 特别是,当GCC配置为-std = c ++ 0X时,它假定__GXX_EXPERIMENTAL_CXX0X__符号的隐式定义,这不是由IDE自动承担的(错误地解析头) 您还可以将IDE配置为在解析时将__GXX_EXPERIMENTAL_CXX0X__符号视为“已定义”。

您的问题很可能与第3点有关

答案 1 :(得分:-1)

您必须询问编译器是否支持C ++ 11,而不是IDE。

嗯,对于g ++,它支持4.7版本中的大多数c ++ 11特性。