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++
如果您是使用它.