【发布时间】:2012-05-11 15:18:58
【问题描述】:
如何在 Clang 中使用最新的 C++ 11 功能?支持哪些(子)功能集?
【问题讨论】:
-
我在这里添加了c++11 标签,这个问题似乎可能会在未来引起足够的兴趣,让 C++11 专家提前获得额外的可见性对我来说是值得的——但如果你们希望将标签限制为严格的 language 问题,请随时删除它——我很想知道它。谢谢:)
如何在 Clang 中使用最新的 C++ 11 功能?支持哪些(子)功能集?
【问题讨论】:
您将需要 clang 3.3 才能使用 C++ 11 中最相关的功能集。阅读C++ Support in Clang 以获取最新支持功能的完整列表。 Clang 3.3 声称是 C++11 功能完整的。
Clang 的命令行与 gcc 兼容,因此您必须通过 followinf 命令行开关启用 C++11 支持
-std=c++11
Clang 3.3 还支持一堆 C++11 后的特性(如 decltype(auto)、成员初始化器和聚合)。使用此命令行开关启用它们
-std=c++1y
【讨论】:
以下是 clang 支持的最新功能列表:
http://clang.llvm.org/cxx_status.html
要激活 C++11,您必须在您的 clang 调用中添加 -std=c++11,例如 gcc。 如果您使用支持 clang 或 gcc 的 IDE,则可以使用特定的项目设置选项来执行此操作。
【讨论】: