如何让 C++0x / C++11 风格的基于范围的 for 循环与 clang 一起使用?

发布于 2024-12-03 00:04:46 字数 395 浏览 0 评论 0原文

我一直在使用 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 标头。我需要做什么才能让 clang 使用 C++0x/11 功能?

I've been taking advantage of range-based for loops in C++0x/11 using gcc w/ -std=c++0x like so:

for (int i : container) ...

I recently tried clang (clang+llvm-2.9-x86_64-apple-darwin10), but out-of-the-box these statements were compilation errors. According to http://clang.llvm.org/cxx_status.html it's supported. I tried adding -stdlib=libc++ on the command-line, but then I get an error that the iostream header isn't found. What do I need to do to get clang to work with C++0x/11 functionality?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

弄潮 2024-12-10 00:04:46

这里的秘密是 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/

The secret here is that LLVM 2.9 doesn't support range-based for loops. That document corresponds to LLVM/Clang mainline. To get range-based for loops, please check out LLVM/Clang from mainline SVN: http://clang.llvm.org/get_started.html

libc++ is useful for C++'0x ('11!) library support, but you also have to set it up if you want to use its functionality on top of C++'0x language features. For information on how to set it up, please see: http://libcxx.llvm.org/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文