2012-04-10 55 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點相關