如何在Clang中使用C++ 11功能?

60 c++ clang c++11

如何在Clang中使用最新的C++ 11功能?支持哪些(子)功能?

Ser*_* K. 81

您将需要使用clang 3.3来使用C++ 11中最相关的功能集.阅读Clang中的C++支持以获取最新支持功能的完整列表.Clang 3.3声称是C++ 11功能完整.

Clang的命令行是gcc兼容的,所以你必须通过followinf命令行开关启用C++ 11支持

-std=c++11
Run Code Online (Sandbox Code Playgroud)

Clang 3.3还支持一系列post-C++ 11特性(如decltype(auto),成员初始化器和聚合).使用此命令行开关启用它们

-std=c++1y
Run Code Online (Sandbox Code Playgroud)

  • 如果您在Mac上使用clang/llvm,则还必须添加-stdlib = libc ++(除了-std = c ++ 11标志)以访问大多数功能,因为它们在旧的libstdc ++中不可用.但要注意 - 将std-objects传递给与libstdc ++链接的库时会出现abi-inconsistencies(例如,如果使用boost,则不使用libc ++手动编译) (5认同)
  • 它是,但有一个问题,使它不更新缓存...所以只是Ctrl + R,你会得到它. (3认同)
  • 这说明不幸的是这个页面不是最新的...我会在列表中提出这个问题:x (2认同)

Kla*_*aim 16

以下是clang支持的始终最新功能列表:

http://clang.llvm.org/cxx_status.html

要激活C++ 11,您必须在clang调用中添加-std = c ++ 11,例如gcc.如果您使用具有clang-aware或gcc-aware的IDE,则可以使用特定的项目设置选项来执行此操作.