我一直在使用gcc w / -std = c ++ 0x这样在C ++ 0x / 11中利用基于范围的for循环:
for (int i : container) ...
我最近尝试过clang(clang + llvm-2.9-x86_64-apple-darwin10),但开箱即用的这些语句都是编译错误。根据{{3}},它得到了支持。我尝试在命令行上添加-stdlib = libc ++,但后来发现找不到iostream头的错误。我需要做些什么来让clang使用C ++ 0x / 11功能?
答案 0 :(得分:6)
这里的秘密是LLVM 2.9不支持基于范围的for循环。该文档对应LLVM / Clang主线。要获得基于范围的for循环,请从主线SVN中查看LLVM / Clang:http://clang.llvm.org/get_started.html
libc ++对于C ++'0x('11!)库支持很有用,但如果你想在C ++的0x语言特性之上使用它的功能,你还必须设置它。有关如何设置的信息,请参阅:http://libcxx.llvm.org/