虽然这里有一些关于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
Run Code Online (Sandbox Code Playgroud)
根据clang C++ 11状态页面,我应该至少部分支持(例如直角括号),但它拒绝我测试的所有功能.
是否有任何转换来告诉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
Run Code Online (Sandbox Code Playgroud)
bam*_*s53 22
ildjarn指出正确的参数,-std=c++0x或-std=c++11.您使用该参数获得的错误可能是因为您使用的libstdc ++版本使用的是某些C++ 11或非标准C++,而clang 2.9不支持.