デフォルトでclang++
は、C++11機能は有効になりません。コンパイル中に追加のフラグを渡す必要があります。
clang++ -std=c++11 [input files...]
または
# enables some additional C++11 extensions GCC has
clang++ -std=gnu++11 [input files...]
さらに、 C++標準ライブラリの異なる実装であるlibstdc++
Clang独自の使用とClang独自の使用を切り替えることができます。場合によっては、既存のライブラリよりもC++11標準の実装が優れている可能性があります。libc++
libc++
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]
後者は、古いバージョンの環境(Mac OSXなど)でClangを使用している場合に重要ですがlibstdc++
、2つのC ++ライブラリは相互に互換性がないため、依存関係を再構築する必要があることに注意してくださいlibc++
。それを使用します。