Полная поддержка С++ 11 на Eclipse
Я пытаюсь найти способ получить полную поддержку С++ 11 на Eclipse.
В Eclipse Juno у меня появилось много новых функций с __GXX_EXPERIMENTAL_CXX0X__
, но я не нашел поддержки для std::threads
, std::mutex
и т.д.
Как мне выполнить завершение для всех функций С++ 11?
EDIT: решение
Перейдите к Project -> Properties -> C/C++ General -> Path and Symbols -> Tab [Symbols]
.
Добавьте символ: __ cplusplus со значением 201103L
Ответы
Ответ 1
Eclipse работает с поддержкой C + 11 (Indexer и т.д.) просто отлично: как Juno, так и Kepler. Дело в том, что вы должны позволить Eclipse знать, что собираетесь собираться с поддержкой С++ 11. Это делается путем предоставления дополнительного флага -std=c++11
до CDT GCC Builtin Compiler Settings
в C/C++ -> Build -> Settings -> Discovery [tab]
, чтобы он читал что-то вроде:
${COMMAND} -E -P -v -dD "${INPUTS}" -std=c++11
И это все, что вам нужно сделать с Kepler/Juno, чтобы правильно отобразить код С++ 11.
Обратите внимание, что это параметр рабочей области. Вы можете сделать то же самое для каждого проекта, если вы не хотите устанавливать его в рабочей области.
Ответ 2
Есть ли даже компилятор, который полностью поддерживает С++ 11? Если вы работаете в Windows, то я думаю, вы должны дать Microsoft Visual Studio Express Edition 2013. Его поддержка на С++ 11 не завершена, но ИМО достаточно хороша, и похоже, что в ближайшем будущем она станет еще лучше.