Могу ли я использовать C ++ 11 с Xcode? - PullRequest
85 голосов
/ 01 января 2011

Я рассматриваю возможность использования некоторых функций C ++ 11 (например, auto) в некоторых кроссплатформенных проектах (Windows + Mac). В Windows Visual Studio поддерживает части будущего стандарта C ++ 11, которые позволили бы мне упростить части базы кода, поэтому, естественно, мне было бы интересно начать использовать эти функции.

Но, насколько мне известно, текущая версия XCode (3.2.4 + GCC 4.2) вообще не поддерживает никаких функций C ++ 11. Могу ли я обновить версию GCC или версию CLang? Или я должен просто прикусить язык и подождать, пока Apple выпустит новую версию в будущем?

Ответы [ 4 ]

74 голосов
/ 17 октября 2011

Xcode 4.2 наконец-то добавил поддержку C ++ 0X:

  1. На экране настроек сборки проекта включите опции «Все».

  2. В разделе «Параметры сборки» установите для компилятора значение «Apple LLVM compiler 3.0».

  3. Прокрутите вниз до раздела «Apple LLVM Compiler 3.0 - Language» и установите «C ++ Language Dialect» в «C ++ 0X» и «C ++ Standard Library» в «libc ++».

Известно, что std :: move (), конструктор move и ссылка R-Value работают должным образом, и я тестирую на std :: thread и std :: atomic.

8 голосов
/ 02 января 2011

======= Обновление 2012: =======

Начните с Clang - многие функции C ++ 11 теперь доступны в Clang.Он включен в Xcode.

======= Оригинальный ответ от января 2011 года: =======

компилятор Intel может быть самым чистым способомидти в это время.http://software.intel.com/en-us/articles/intel-composer-xe/

Многообещающие, но не особо стабильные или функциональные функции clang в отношении c ++ 0x.C ++ все еще очень нов для clang.

gcc: относительно зрелый, но вам придется писать и поддерживать свои плагины компилятора для xcode.

вы также можете указывать собственные скрипты, ноболь в обслуживании ... если только вы не сделаете все возможное и не создадите инструмент-адаптер.

1 голос
/ 01 января 2011

Xcode использует компиляторы GCC или Clang C ++.Любые функции, поддерживаемые этими компиляторами, являются честной игрой.Страница совместимости C ++ в GCC здесь , а страница совместимости Clang C ++ здесь .

0 голосов
/ 27 ноября 2011

Я нашел auto, decltype (), работу на основе диапазона для (:)) в кроссплатформенном проекте (LLVM для MacOSX, iOS, gcc / linux, MSVC 10 / windows).

lambdas & variadic макросы, к сожалению, пока не работают под LLVM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...