Ich erwäge die Verwendung einiger C++11-Features (wie z auto zum Beispiel) in einigen plattformübergreifenden Projekten (Windows+Mac). Unter Windows unterstützt Visual Studio Teile des kommenden C++11-Standards, der es mir ermöglichen würde, Teile der Codebasis zu vereinfachen, sodass ich natürlich daran interessiert wäre, diese Features zu verwenden.
Aber soweit mir bekannt ist, unterstützt die aktuelle XCode-Version (3.2.4 + GCC 4.2) überhaupt keine C++11-Features. Kann ich die GCC-Version oder die CLang-Version irgendwie aktualisieren? Oder sollte ich mir einfach auf die Zunge beißen und warten, bis Apple irgendwann in der Zukunft eine neue Version verpackt?
Schauen Sie sich hier und da die Antworten an.
– F’x
1. Januar 11 um 13:57 Uhr
Ein positiveres Ergebnis finden Sie unter: stackoverflow.com/questions/837992/update-gcc-on-osx
– David Rodríguez – Dribeas
1. Januar 11 um 16:24 Uhr
In Bezug auf Clang: Ich glaube, dass es kürzlich eine vernünftige C++03-Unterstützung erreicht hat, aber C++0x ist immer noch ein weit entferntes Ziel. Zum Beispiel ist die Unterstützung von Variadic-Templates in Arbeit und Bewegungssemantik/rvalue-Referenzen wurden noch nicht implementiert.
– Matthias M.
4. Januar 11 um 15:47 Uhr
Variadic-Vorlagen funktionieren bei mir gut mit Clang.
– Alexandre Hamez
13. Januar 12 um 10:23 Uhr
Xcode 4.2 hatte endlich Unterstützung für C++0X hinzugefügt:
Aktivieren Sie im Bildschirm mit den Projekterstellungseinstellungen die Option „Alle“.
Stellen Sie im Abschnitt „Build-Optionen“ den Compiler auf „Apple LLVM-Compiler 3.0“ ein.
Scrollen Sie nach unten zum Abschnitt „Apple LLVM Compiler 3.0 – Language“ und setzen Sie „C++ Language Dialect“ auf „C++0X“ und „C++ Standard Library“ auf „libc++“.
Es ist bekannt, dass std::move(), Move-Konstruktor und R-Value-Referenz wie erwartet funktionieren, und ich teste auf std::thread und std::atomic.
@ RichardLiu, was ist mit dem GNU++0X Möglichkeit für die C++ Language Dialect und das libstdc++ Option für C++ Standard Library? Wann sollen sie verwendet werden?
– Zinn
22. Januar 12 um 0:30 Uhr
Ich habe mal reingeschaut /Developer/About Xcode.pdf und ja, es heißt, dass C++11 unterstützt wird, aber wenn ich es verwende -std=gnu++0x es spuckt aus cc1plus: error: unrecognized command line option "-std=0x++"! Sollte ich es benutzen clang++ stattdessen?
– Fehlerentwickler
4. März 12 um 22:50 Uhr
@errordeveloper, bisher hatte ich nur C++11 INNERHALB der Xcode IDE erfolgreich kompiliert. Ich weiß nicht, wie ich C ++ 11 in der Befehlszeile oder im Makefile aktivieren kann. Verzeihung.
– RichardLiu
26. März 2012 um 7:41 Uhr
@RichardLiu: XCode verwendet normalerweise clang++ beim Kompilieren nicht g++weshalb die C++11-Unterstützung beim Versuch der Verwendung fehlschlägt g++ von der Befehlszeile (weil die alte g++ XCode gibt Ihnen keine Unterstützung). Nur zur Info.
– Maisstängel
9. Januar 13 um 5:51 Uhr
justin
======= Aktualisierung 2012: =======
Beginnen Sie mit Clang – Viele C++11-Features sind jetzt in Clang verfügbar. Es ist in Xcode enthalten.
======= Ursprüngliche Antwort vom Januar 2011: =======
clangs vielversprechende, aber nicht besonders stabile oder vorgestellte Funktionen von c++0x. c++ ist für clang noch sehr neu.
gcc: relativ ausgereift, aber Sie müssen Ihre Compiler-Plugins für xcode schreiben und warten.
Sie können auch benutzerdefinierte Skripts angeben, aber das ist mühsam zu warten … es sei denn, Sie geben sich alle Mühe und erstellen ein Adapter-Tool.
Xcode verwendet den GCC- oder den Clang-C++-Compiler. Alle Features, die von diesen Compilern unterstützt werden, sind faires Spiel. Die C++-Kompatibilitätsseite von GCC ist Hier und die Clang C++-Kompatibilitätsseite ist Hier.
Stimmt, aber die GCC-Unterstützung hört bei 4.2 auf, was langsam in die Jahre gekommen ist
– Matthias
1. November 11 um 1:15 Uhr
Ich habe festgestellt, dass auto, decltype(), range based “for (:)” in einem plattformübergreifenden Projekt funktioniert (LLVM für MacOSX, iOS, gcc/linux, MSVC 10/windows).
Lambdas und variadische Makros scheinen leider noch nicht unter LLVM zu funktionieren.
.
8223900cookie-checkKann ich C++11 mit Xcode verwenden?yes
Schauen Sie sich hier und da die Antworten an.
– F’x
1. Januar 11 um 13:57 Uhr
Ein positiveres Ergebnis finden Sie unter: stackoverflow.com/questions/837992/update-gcc-on-osx
– David Rodríguez – Dribeas
1. Januar 11 um 16:24 Uhr
In Bezug auf Clang: Ich glaube, dass es kürzlich eine vernünftige C++03-Unterstützung erreicht hat, aber C++0x ist immer noch ein weit entferntes Ziel. Zum Beispiel ist die Unterstützung von Variadic-Templates in Arbeit und Bewegungssemantik/rvalue-Referenzen wurden noch nicht implementiert.
– Matthias M.
4. Januar 11 um 15:47 Uhr
Variadic-Vorlagen funktionieren bei mir gut mit Clang.
– Alexandre Hamez
13. Januar 12 um 10:23 Uhr