J'envisage l'utilisation de certaines fonctionnalités C ++ 11 (comme auto
par exemple) dans certains projets multiplateformes (Windows + Mac). Sous Windows, Visual Studio prend en charge certaines parties de la future norme C ++ 11 qui me permettraient de simplifier certaines parties de la base de code, alors 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 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 qu'Apple prépare une nouvelle version dans le futur?
Réponses:
Xcode 4.2 avait finalement ajouté le support pour 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 jusqu'à la section «Apple LLVM Compiler 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 sont connus pour fonctionner comme prévu, et je teste sur std :: thread et std :: atomic.
la source
GNU++0X
option pourC++ Language Dialect
et de l'libstdc++
option pourC++ Standard Library
? Quand doivent-ils être utilisés?/Developer/About\ Xcode.pdf
et oui, il dit que C ++ 11 est pris en charge, mais quand je l'utilise,-std=gnu++0x
il crachecc1plus: error: unrecognized command line option "-std=0x++"
! Dois-je utiliser à laclang++
place?clang++
lors de la compilation, nong++
, c'est pourquoi la prise en charge de C ++ 11 échoue lorsque vous essayez d'utiliser àg++
partir de la ligne de commande (car l'ancieng++
XCode ne vous le donne pas). Juste FYI.======= 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 la manière la plus propre de procéder pour le moment. http://software.intel.com/en-us/articles/intel-composer-xe/
clang est prometteur, mais pas particulièrement stable ou en vedette avec 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 difficile à maintenir ... à moins que vous ne fassiez tout votre possible et que vous créiez un outil adaptateur.
la source
Xcode utilise les compilateurs GCC ou Clang C ++. Toutes les fonctionnalités prises en charge par ces compilateurs sont équitables. La page de compatibilité C ++ de GCC est ici et la page de compatibilité Clang C ++ est ici .
la source
J'ai trouvé auto, decltype (), range based "for (:)" travailler dans un projet multiplateforme (LLVM pour MacOSX, iOS, gcc / linux, MSVC 10 / windows).
Les macros lambdas et variadiques ne semblent malheureusement pas fonctionner sous LLVM.
la source