虽然这里有一些关于clang的C ++ 11支持的问题,但我似乎无法让clang++
吃掉我的C ++ 11代码。
$ clang++ --version
clang version 2.9 (tags/RELEASE_29/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
根据the clang C++11 status page我应该至少得到部分支持(例如直角括号),但它拒绝我测试的所有功能。
是否有任何转换告诉clang使用C ++ 11?
示例测试:
$ clang++ -stdlib=libstdc++ cpp11.cpp
cpp11.cpp:16:33: error: a space is required between consecutive right angle brackets (use '> >')
std::vector<std::pair<int,char>> xs;
^~
> >
cpp11.cpp:18:8: error: C++ requires a type specifier for all declarations
auto y = x;
~~~~ ^
2 errors generated
答案 0 :(得分:21)
ildjarn指出了正确的参数-std=c++0x
或-std=c++11
。您使用该参数获得的错误可能是因为您使用的libstdc ++版本使用的是某些C ++ 11或非标准C ++,而clang 2.9不支持。