Standardmäßig aktiviert clang++
nicht die C++ 11-Funktionen - Sie haben to pass an additional flag during compilation.
clang++ -std=c++11 [input files...]
Oder
# enables some additional C++11 extensions GCC has
clang++ -std=gnu++11 [input files...]
Zusätzlich können Sie zwischen libstdc++
und Clang eigenen libc++
verwenden, die verschiedene Implementierungen der C++ Standard-Bibliothek sind. libc++
kann in einigen Fällen eine bessere Implementierung des C++ 11-Standards als Ihre vorhandene libstdc++
-Bibliothek haben.
# uses clang's C++ library in C++98 mode
clang++ -stdlib=libc++ [input] # uses clang's C++ library
# uses clang's C++ library and enables C++11 mode
clang++ -stdlib=libc++ -std=c++11 [input]
Letzteres ist wichtig, wenn Sie Clang in einer Umgebung mit einer veralteten Version von libstdc++
(wie Mac OSX) verwenden, aber beachten Sie, dass die beiden C++ Bibliotheken miteinander nicht kompatibel sind, so dass Sie würde um irgendwelche Abhängigkeiten gegen libc++
neu aufzubauen, wenn Sie das benutzen würden.
mögliche Duplikate von [Wie kann ich C++ 11 Funktionen in Clang verwenden?] (Http://stackoverflow.com/questions/10408849/how-cani-i-use-c-11-features-in-clang) –