Clang 3.1和C++ 11支持状态

wil*_*ill 22 c++ llvm clang c++11

来自clang的C++ 11支持状态网站http://clang.llvm.org/cxx_status.html,它说,从版本3.1开始支持"初始化列表"和"Lambda表达式".

但是,使用LLVM/Clang trunk(3.2),针对初始化列表和lambda表达式进行编译将产生错误消息.

有谁知道Clang> 3.1是否支持这些功能?

wkl*_*wkl 32

默认情况下,clang++不会启用C++ 11功能 - 您必须在编译期间传递其他标志.

clang++ -std=c++11 [input files...]
Run Code Online (Sandbox Code Playgroud)

要么

# enables some additional C++11 extensions GCC has
clang++ -std=gnu++11 [input files...] 
Run Code Online (Sandbox Code Playgroud)

此外,您可以在使用libstdc++和Clang自己之间切换libc++,这是C++标准库的不同实现.libc++在某些情况下,可能比现有的libstdc++库更好地实现C++ 11标准.

# uses clang's C++ library in C++98 mode
clang++ -stdlib=libc++ [input] # uses clang's C++ library

# uses clang's C++ library and enables C++11 mode
clang++ -stdlib=libc++ -std=c++11 [input] 
Run Code Online (Sandbox Code Playgroud)

如果您在具有过时版本libstdc++(如Mac OSX)的环境中使用Clang,后者非常重要,但请注意,这两个C++库彼此不兼容,因此您必须重建任何依赖项,libc++如果您是使用它.