2012-04-10 62 views
0

我需要问的是NetBeans 7.1.1中是否支持C++ 11(使用libaries作为线程,chrono)。是否支持netbeans IDE中的C++ 11 7.1.1

我有这个代码: -

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

test4(); 
} 

其实我的工作做的东西,每隔一分钟就会调用这个函数(我的意思是,当通过一分钟的系统时间更改)

感谢

+0

您使用的是什么编译器?如果使用g ++,它支持4.7版本中的大多数C++ 11功能。 – 2012-04-10 06:01:27

+2

netbeans是** IDE而不是编译器。 – 2012-04-10 06:01:32

+0

@编译器是g ++,ide是7.1.1 – gandhigcpp 2012-04-10 06:02:10

回答

-1

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

那么,对于g ++,它支持4.7版本中的大多数C++ 11功能。

+0

:-isnt它像提供了编译器每改变一次发生变化的ide,你能否建议为什么它显示我一个错误,然后 – gandhigcpp 2012-04-10 06:05:39

+4

这个答案不是100%正确的。许多IDE提供了诸如自动完成,成员解析或甚至是非常基本的静态分析器,这些静态分析器在使用新的C++ 11代码时可能会失败。例如,当使用gcc的标准库时,所有C++ 11新类/函数都在预处理器标志之后,并且可能无法被IDE识别,从而导致“IDE错误”(它会编译但会降低IDE的实用性)。 – KillianDS 2012-04-10 06:34:24

+0

反对,因为ide也需要支持C++ 11。 – 2012-06-15 12:29:54

5

这里有三件事情(编译器,IDE和OS)都很重要。

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

2)操作系统也很重要:<thread>头本质上是一套关于ptherad,mutex和condition_variable。在Windows上,condition_variable本地只存在于0x600(Vista),最高0x505(XP),您必须处理本机“同步EVENT对象”,它可以是等效的,bu具有不同的语义(boost::thread实现适配器,但GCC 只是跳过整个线程实现:因此...如果您正在编写更多的操作系统,请检查您是否使用了它们全部存在的库实现!)

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

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