我一直在使用 gcc w/-std=c++0x 来利用 C++0x/11 中基于范围的 for 循环,如下所示:
for (int i : container) ...
我最近尝试了 clang (clang+llvm-2.9-x86_64-apple-darwin10),但开箱即用的这些语句是编译错误。根据http://clang.llvm.org/cxx_status.html它受到支持。我尝试在命令行上添加 -stdlib=libc++ ,但随后出现错误,提示未找到 iostream header 。我需要做什么才能让 clang 使用 C++0x/11 功能?
最佳答案
这里的 secret 是 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/
关于c++ - 如何让 C++0x/C++11 风格的基于范围的 for 循环与 clang 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7314891/