Comment mettre à jour vers C ++ 11?
Je suis nouveau en programmation, donc, n'ont jamais connu un langage de mise à jour. Avec la version de C++11, je veux profiter de toutes les nouvelles fonctionnalités telles que les expressions lambda et les threads. Je sais que je peux le faire avec des bibliothèques externes, mais à l'aide de la langue maternelle des caractéristiques serait plus pratique.
Je suis en utilisant gcc 4.2.1 sur Mac OS X Snowleopard dans Xcode 3.2.6
Ce que tout ce que je dois faire et mise à jour pour démarrer à l'aide de C++11 caractéristiques?
source d'informationauteur fdh
Vous devez vous connecter pour publier un commentaire.
Vous pouvez mettre à jour de Xcode 4.1 (ou quelle que soit la version la plus récente que vous pouvez obtenir pour Snow Leopard) et d'obtenir un nouveau compilateur avec un peu plus de C++11 caractéristiques. Il y a quelques posts ici sur un Débordement de Pile sur l'obtention d'un meilleur soutien pour le C++11 dans Xcode 4.1 sur Snow Leopard.
Mais même à la dernière compilateur disponible via Xcode ne prend pas en charge certains C++11 caractéristiques tels que les lambdas. Pour obtenir le meilleur, C++11, vous aurez envie d'installer un nouveau compilateur gcc 4.6 ou 4.7, ou Clang.
J'ai souvent construire la dernière version de bruit à partir de la source. Il n'est pas difficile à faire si vous êtes familier avec la construction d'autres logiciels open source. J'utilise git repos pour clang et llvm,
http://llvm.org/git/llvm.git
ethttp://llvm.org/git/clang.git
. Vous pouvez également trouver des instructions sur leur site web pour commencer: http://clang.llvm.org/get_started.html. Une fois que vous avez la source de bruit et llvm c'est juste./configure && make && sudo make install
. (vous pouvez exécuter les tests avant de l'installer, puisque c'est directement à partir de la logithèque. Aprèsmake
nemake check
dans la llvm annuaire, et une fois que passe le cd en bas à outils/clang et exécutermake test
. Si tout est ok alorssudo make install
)Je ne me souviens pas si Snow Leopard inclus libc++ ou pas, vous devrez peut-être obtenir aussi. http://libcxx.llvm.org/
Une fois que tout est construit et installé, vous pouvez le faire:
et vous devriez avoir à peu près les meilleurs C++11 soutien autour.
Récents patchs dans clang ont vraiment amélioré le support pour les dernières fonctionnalités que vous êtes susceptibles de remarquer qu'un nouveau programmeur C++. Il y a encore quelques bribes de gauche, mais aussi de 3.1, et pour autant que je suis au courant, clang a tous C++11 fonctionnalités que soit gcc 4.7 ou VC++11 a et de plus en plus. libc++ aussi a le moins de lacunes en termes de C++11 de la bibliothèque standard caractéristiques de l'IME (mais je pense que VC++de la bibliothèque standard sera également assez complète une fois qu'ils rattraper son retard sur les fonctionnalités de langage, par exemple char32_t et char16_t que les types natifs de sorte que la norme obligatoire spécialisations pour ces types peuvent être utilisés).
Fondamentalement, vous avez seulement besoin d'obtenir une chaîne de traitement qui prend en charge les nouvelles fonctionnalités. Dans macosx qui serait soit de GCC ou clang++. Vous pourriez avoir besoin de télécharger/compiler une version particulière en cas de besoin (c'est à dire si la fonction que vous voulez essayer, n'est pas dans un préemballées compilateur bundle, mais est disponible dans le dépôt).
J'ai téléchargé et compilé la dernière tronc de clang++ de subversion à faire quelques essais, et installé g++ 4.6 avec macports dans Snow Leopard. Je me souviens que j'ai eu quelques problèmes avec la configuration de l'environnement, mais n'arrive pas à se rappeler qui les compilateurs m'a donné des problèmes ou comment je l'ai résolu. Google est votre ami 🙂
Si vous avez homebrew installé, à partir de cet articleseulement deux étapes: