2012-04-10 2 views
0

Мне нужно спросить, есть ли поддержка для C++ 11 (с использованием libaries как thread, chrono) в netbeans 7.1.1.Есть ли поддержка для C++ 11 в netbeans ide 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 ++, он поддерживает большинство функций C++ 11 в версии 4.7. –

+2

netbeans является ** ide ** не компилятором. –

+0

@ компилятор g ++ и ide is 7.1.1 – gandhigcpp

ответ

-1

Вы должны спросить, поддерживает ли ваш компилятор C++ 11, а не вашу среду IDE.

Ну, для g ++ он поддерживает большинство функций C++ 11 в версии 4.7.

+0

: -Интересно, что идеал, который предоставил компилятору, вносит изменения в каждый realease, может у вас спросить, почему он показывает мне ошибку, тогда – gandhigcpp

+4

Этот ответ не на 100% правилен imho. Многие IDE предоставляют такие функции, как автоматическое завершение, разрешающие элементы или даже очень простые статические анализаторы, которые могут очень сильно сбой при использовании нового кода C++ 11. Например, при использовании стандартной библиотеки gcc все C++ 11 новых классов/функций находятся за флагом препроцессора и не могут быть распознаны средой IDE, что приводит к «ошибкам IDE» (она скомпилирует, но уменьшит полезность IDE). – KillianDS

+0

, потому что идее необходимо поддерживать C++ 11. –

5

Здесь важны три вещи (компилятор, IDE и ОС).

1) Компилятор: GCC 4.6 уже имеет хорошую поддержку C++ 11 и имеет заголовки <thread> и <chrono>. Но вы должны скомпилировать с -std=c++0x. Если вы используете IDE, он должен быть сконфигурирован так, чтобы генерировать make как таковой (так что проверьте опцию компилятора)

2) ОС также важна: заголовок <thread> представляет собой набор оберток вокруг концепции POSIX ptherad, мьютекса и condition_variable. В Windows условия condition_variable изначально присутствуют только с 0x600 (Vista), до 0x505 (XP), вам приходится иметь дело с собственными «объектами синхронизации EVENT», которые могут быть эквивалентными, bu имеют разную семантику (boost::thread реализует адаптеры, но GCC просто пропускает всю реализацию потока: отсюда ... если вы пишете больше ОС, проверьте, существует ли на их основе реализация библиотеки!)

3) IDE также имеет важное значение: так как редакторы анализируют текст и отображают информацию о завершении, а также «синтаксическую ошибку при наборе текста» и т. д. doen НЕ зависят от компилятора, но от используемого ими анализатора. В частности, GCC при настройке с -std = C++ 0X предполагает неявное определение символа __GXX_EXPERIMENTAL_CXX0X__, которое не допускается автоматически IDE (которое неправильно анализирует заголовки) Вы также должны настроить IDE рассмотреть символ __GXX_EXPERIMENTAL_CXX0X__ как «определенный» при разборе.

Ваша проблема, скорее всего, связана с пунктом 3

Смежные вопросы