De manera predeterminada, clang++
no habilitará las características de C++ 11 - tiene to pass an additional flag during compilation.
clang++ -std=c++11 [input files...]
O
# enables some additional C++11 extensions GCC has
clang++ -std=gnu++11 [input files...]
Además, puede cambiar entre el uso de libstdc++
y Clang la propia libc++
, que son diferentes implementaciones de la biblioteca estándar de C++. libc++
en algunos casos podría tener una mejor implementación del estándar C++ 11 que su biblioteca existente libstdc++
.
# 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]
Esto último es importante si está usando Clang en un entorno con una versión obsoleta de libstdc++
(como Mac OS X), pero tenga en cuenta que las dos bibliotecas de C++ no son compatibles entre sí, por lo que tendría para reconstruir cualquier dependencia contra libc++
si tuviera que usar eso.
posible duplicado de [¿Cómo puedo usar las características de C++ 11 en Clang?] (Http://stackoverflow.com/questions/10408849/how-can-i-use-c-11-features-in-clang) –