Puis-je utiliser C ++ 11 avec Xcode?

J’envisage l’utilisation de certaines fonctionnalités de C ++ 11 (comme l’ auto par exemple) dans certains projets multi-plateformes (Windows + Mac). Sous Windows, Visual Studio prend en charge certaines parties du futur standard C ++ 11, ce qui me permettrait de simplifier certaines parties de la base de code. Je serais donc naturellement intéressé à commencer à utiliser ces fonctionnalités.

Mais pour autant que je sache, la version actuelle de XCode (3.2.4 + GCC 4.2) ne supporte aucune fonctionnalité de C ++ 11. Puis-je mettre à jour la version GCC ou la version CLang d’une manière ou d’une autre? Ou devrais-je simplement mordre la langue et attendre qu’Apple compresse une nouvelle version dans le futur?

Xcode 4.2 avait finalement ajouté le support de C ++ 0X:

  1. Dans l’écran des parameters de construction du projet, activez les options “Toutes”.

  2. Dans la section “Options de génération”, définissez le compilateur sur “Compilateur Apple LLVM 3.0”.

  3. Faites défiler jusqu’à “Apple LLVM Comstackr 3.0 – Language” et définissez “C ++ Language Dialect” sur “C ++ 0X” et “C ++ Standard Library” sur “libc ++”.

Le std :: move (), le constructeur de déplacement et la référence R-Value fonctionnent comme prévu, et je teste sur std :: thread et std :: atomic.

======= Mise à jour 2012: =======

Commencez avec Clang – De nombreuses fonctionnalités C ++ 11 sont désormais disponibles dans Clang. Il est inclus avec Xcode.

======= Réponse originale de janvier 2011: =======

Le compilateur d’Intel est peut-être le moyen le plus propre de procéder à ce moment. http://software.intel.com/en-us/articles/intel-composer-xe/

Clang est prometteur, mais pas particulièrement stable ou doté de fonctionnalités spécifiques à c ++ 0x. c ++ est encore très nouveau pour le clang.

gcc: relativement mature, mais vous devrez écrire et maintenir vos plugins de compilation pour xcode.

Vous pouvez également spécifier des scripts personnalisés, mais cela ne vous posera pas de problème de maintenance … à moins que vous ne créiez un outil d’adaptateur.

Xcode utilise les compilateurs GCC ou Clang C ++. Toutes les fonctionnalités sockets en charge par ces compilateurs sont équitables. La page de compatibilité C ++ de GCC est ici et la page de compatibilité de Clang C ++ est ici .

J’ai trouvé auto, decltype (), basé sur la plage “for (:)” fonctionner dans un projet multi-plateforme (LLVM pour MacOSX, iOS, gcc / linux, MSVC 10 / windows).

Les macros lambda et variadic ne semblent malheureusement pas fonctionner sous LLVM.