Je considère l'utilisation de certaines fonctionnalités C++ 11 (comme auto
par exemple) dans certains projets multiplates-formes (Windows + Mac). Sous Windows, Visual Studio prend en charge certaines parties de la norme C++ 11 à venir, ce qui me permettrait de simplifier certaines parties de la base de code, donc je serais 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 pas du tout les fonctionnalités C++ 11. Puis-je mettre à jour la version GCC ou la version CLang d'une manière ou d'une autre? Ou devrais-je juste me mordre la langue et attendre Apple pour emballer une nouvelle version dans le futur?Puis-je utiliser C++ 11 avec Xcode?
Répondre
Xcode 4.2 a enfin ajouté le support pour C++ 0X:
Dans l'écran des paramètres de construction du projet, activez les options "Tous".
Dans la section "Options de génération", définissez le compilateur sur "Apple LLVM 3.0". Faites défiler jusqu'à la section "Apple LLVM Compiler 3.0 - Language" et définissez "C++ Language Dialect" sur "C++ 0X" et "C++ Standard Library" sur "libC++".
std :: move(), déplacer constructeur et référence R-Value sont connus pour fonctionner comme prévu, et je teste sur le std :: fil et std :: atomique.
@ RichardLiu, qu'en est-il de l'option 'GNU ++ 0X' pour le' Dialecte C++ Language 'et l'option 'libstdC++' pour C++ Standard Bibliothèque'? Quand doivent-ils être utilisés? – Tin
J'ai jeté un oeil dans '/ Developer/About \ Xcode.pdf' et oui, il est dit que C++ 11 est supporté, mais quand j'utilise' -std = gnu ++ 0x' il crache 'cc1plus: error : option de ligne de commande non reconnue "-std = 0x ++" '! Dois-je utiliser 'clang ++' à la place? – errordeveloper
@errordeveloper, jusqu'à présent, je n'avais compilé que C++ 11 WITHIN Xcode IDE. Je ne sais pas comment activer C++ 11 en ligne de commande ou makefile. Pardon. – RichardLiu
Xcode utilise les compilateurs GCC ou Clang C++. Toutes les fonctionnalités prises en charge par ces compilateurs sont jeu équitable. La page de compatibilité C++ de GCC est here et la page de compatibilité Clang C++ est here. Mise à jour
Le vrai mais le support de GCC s'arrête à 4.2 qui commence à devenir un peu long dans la dent – Mattia
======= 2012: =======
Commencez par Clang - Beaucoup 11 C++ fonctionnalités sont désormais disponibles en Clang. C'est inclus avec Xcode.
======= réponse originale de Jan 2011: =======
compilateurintel peut être le plus propre chemin à parcourir à ce moment. http://software.intel.com/en-us/articles/intel-composer-xe/
clang est prometteur, mais pas particulièrement stable ou présenté par les 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 c'est une douleur à maintenir ... à moins que vous ne sortiez tout et créer un outil d'adaptateur.
J'ai trouvé auto, decltype(), basé sur la gamme "for (:)" travailler dans un projet multiplateforme (LLVM pour MacOSX, iOS, gcc/linux, MSVC 10/windows).
lambdas & les macros variadiques ne semblent pas encore fonctionner sous LLVM.
MSVC 10 et 11 ne prennent pas en charge la gamme basée sur .Clang, d'autre part, * supporte * les modèles variadiques très bien. –
- 1. C++ 11 avec Xcode sous Mac OS X Snow Leopard
- 2. C++ 11 pour les erreurs xCode
- 3. Comment désactiver les avertissements Xcode C++ 11?
- 4. J'ai des problèmes avec C++ 11 dans Xcode
- 5. Comment utiliser C++ 11 std :: stoi avec gcc?
- 6. Puis-je utiliser std :: function (C++ 11 lambda) avec Boost?
- 7. Devrais-je utiliser C++ 11 emplace_back avec des contres pointeurs?
- 8. Comment utiliser C++ avec Objective-C dans XCode
- 9. Qt Creator avec Visual C++ 11
- 10. C++ 11 initialisation seed_seq
- 11. C++ 11 Polyfills
- 12. Déploiement Ad-Hoc avec Xcode 5/iTunes 11
- 13. C++ 11 nombres aléatoires
- 14. pahole Support C++ 11?
- 15. Utiliser boost :: hash_value pour définir std :: hachage en C++ 11
- 16. Enregistrer l'état du générateur aléatoire C++ 11 sans utiliser iostream
- 17. C++ 11 "auto" à un non C de 11 compilateur
- 18. en C++ 11 lambda avec boost :: multi_index
- 19. Remplacer BOOST_FOREACH avec "pure" alternative C++ 11?
- 20. C++ 11 Lambda passant avec Capture
- 21. Liste d'initialisation C++ 11 avec unique_ptr
- 22. C++ 11 getline demandant deux fois l'entrée
- 23. Makefile C++ 11 support
- 24. C++ 11 regex remplacer
- 25. C++ 11 Quand utiliser une barrière de mémoire?
- 26. Mécanisme Retry générique - Ne peut pas utiliser 11 C++ fonctions
- 27. clang ++, boost :: spirit et C++ 11
- 28. Utiliser la bibliothèque Java avec Xcode, Objective C et Cocoa
- 29. XCode - C++ avec des exemples d'obj-C?
- 30. Profilage C++ avec Xcode
Regardez les réponses [ici] (http://stackoverflow.com/questions/2946887) et [ici] (http://stackoverflow.com/questions/3002395). –
Pour un résultat plus positif, regardez: http://stackoverflow.com/questions/837992/update-gcc-on-osx –
Excellent lien! –