Как включить C ++ 0x Intel C ++ Compiler 12.1.2 - PullRequest
3 голосов
/ 20 января 2012

Я установил последнюю версию Intel C ++ Compiler v12.1.2 в Arch Linux 3.2.1. Когда я использовал icpc для компиляции моего файла C ++

icpc -O3 -DNDEBUG -std=gnu++0x -o obj/main.o src/main.cpp -c

или

icpc -O3 -DNDEBUG -std=c++0x -o obj/main.o src/main.cpp -c

Предупреждение выскочило

Warning #2928: the __GXX_EXPERIMENTAL_CXX0X__ macro is disabled when using GNU version 4.6 with the c++0x option

Мой main.cpp содержит множество функций C ++ 0x, таких как ссылки на rvalue, auto и т. Д. Но компилятор Intel не работал в режиме C ++ 0x. Как включить функции C ++ 0x?

Ответы [ 2 ]

6 голосов
/ 23 мая 2012

Я должен был пробиться через это, но быстрое решение кажется:

  1. Установить libstdc ++ 4.5 (или более раннюю версию)
  2. компилировать с icpc -gcc-name=gcc-4.5 -std=c++0x

Проблема в том, что компиляторы Intel не поддерживают все функции C ++ 0x, которые есть у компиляторов GNU, начиная с версии 4.6. Это приводит к несовместимости с заголовками GNU libstdc ++, поскольку в настоящее время все функции C ++ 0x защищены уникальным макросом __GXX_EXPERIMENTAL_CXX0X__ и не могут быть включены или отключены отдельно.

2 голосов
/ 20 января 2012

Отметьте здесь .Кажется, что C ++ 0x не полностью поддерживается

...