J'envisage d'utiliser certaines fonctionnalités de C++ 11 (comme auto
par exemple) dans certains projets multiplates-formes (Windows + Mac). Sous Windows, Visual Studio prend en charge des parties de la future norme C++ 11 qui me permettraient de simplifier des parties de la base de code. Il est donc naturellement intéressant de commencer à utiliser ces fonctionnalités.
Mais pour autant que je sache, la version actuelle de XCode (3.2.4 + GCC 4.2) ne prend en charge aucune fonctionnalité C++ 11. Puis-je mettre à niveau la version GCC ou la version CLang d'une manière ou d'une autre? Ou devrais-je simplement me mordre la langue et attendre Apple) pour emballer une nouvelle version dans le futur?
Xcode 4.2 avait finalement ajouté le support de C++ 0X:
Dans l'écran des paramètres de construction du projet, activez les options "Toutes".
Dans la section "Options de construction", définissez le compilateur sur "Compilateur Apple LLVM 3.0".
Faites défiler la section "Langage Apple LLVM Compiler 3.0 - Langage" et définissez les options "Dialecte de langage C++" sur "C++ 0X" et "Bibliothèque standard C++" sur "libc ++".
Le std :: move (), le constructeur de move et la référence R-Value sont connus pour fonctionner comme prévu, et je teste les std :: thread et std :: atomic.
======= Mise à jour 2012: =======
Commencez avec Clang - De nombreuses fonctionnalités C++ 11 sont maintenant disponibles dans Clang. Il est inclus avec Xcode.
======= Réponse originale de janvier 2011: =======
le compilateur d'Intel peut être le moyen le plus propre d'aller à ce moment. http://software.intel.com/en-us/articles/intel-composer-xe/
clang est prometteur, mais pas particulièrement stable, ni doté de fonctionnalités c ++ 0x. C++ est encore très nouveau pour 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 est difficile à gérer ... à moins que vous ne mettiez tout en œuvre pour créer un outil adaptateur.
J'ai trouvé auto, decltype (), basé sur la plage "pour (:)", utilisé dans un projet multiplateforme (LLVM pour MacOSX, iOS, gcc/linux, MSVC 10/windows).
les macros lambdas et variadic ne semblent pas fonctionner sous LLVM pour le moment.