Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Clang 3.1和C++;11支助状况_C++_C++11_Llvm_Clang - Fatal编程技术网

C++ Clang 3.1和C++;11支助状况

C++ Clang 3.1和C++;11支助状况,c++,c++11,llvm,clang,C++,C++11,Llvm,Clang,从clang的C++11支持状态网站上,它说,“初始值设定项列表”和“Lambda表达式”从3.1版开始都受支持 但是,使用LLVM/Clang trunk(3.2),根据初始值设定项列表和lambda表达式进行编译将产生错误消息 有人知道Clang>3.1是否支持这些功能吗?默认情况下,Clang++将不会启用C++11功能-您有 或 另外,您可以使用 LBSTDC++< /COD>和Clang自己之间进行切换,这是C++标准库的不同实现。code>libc++在某些情况下,C++11标准的实

从clang的C++11支持状态网站上,它说,“初始值设定项列表”和“Lambda表达式”从3.1版开始都受支持

但是,使用LLVM/Clang trunk(3.2),根据初始值设定项列表和lambda表达式进行编译将产生错误消息


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

默认情况下,
Clang++
将不会启用C++11功能-您有

另外,您可以使用<代码> LBSTDC++< /COD>和Clang自己之间进行切换,这是C++标准库的不同实现。code>libc++在某些情况下,C++11标准的实现可能比现有的

libstdc++
库更好

# 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] 
后者在使用过时的版本 LBSTDC++< /COD>(像Mac OSX)的环境中是很重要的,但是注意两个C++库不兼容,所以如果需要使用,则必须重建对代码< LIbc++ > /Cord>的任何依赖关系。p> 这一页充其量也令人困惑。目前,发布的3.1版本不支持初始值设定项列表或lambda(因此我暂时切换回GCC4.8)

您可以始终使用
\uuuu has\uu feature
宏,根据以下说明检查对功能的clang支持:

例如,
\uuuuuuuuuuuuu特性(cxx\u通用初始化器)
\uuuuuuuuuuu特性(cxx\u lambdas)
将在这些特性可用并启用时返回true

就我个人而言,我希望这些功能在Clang4.0中准备就绪,预计将在下一个Xcode(可能是2012年6月)中发布


--编辑以澄清我一直在测试的版本——显然,clang版本控制比我意识到的要复杂得多

第二个不是为了GCC兼容性。GCC还有一个严格的
C++11
模式
gnu++11
用于为可能的内部代码和glibc(可能是
gnu90
gnu99
启用某些gnu扩展)。使用
-std
命令行开关将无法启用提问者询问的功能,因为clang尚未支持这些功能。@BillWeinman他们在最近的3.1版本中得到了支持,并且已经在主干上运行了一段时间。这些问题是关于初始值设定项列表和lambda表达式的。Clang2.9不支持这些特性。初始值设定项列表和lambda都受Clang3.1的支持,并且在TopofTrunk中已经支持了一段时间。另外,状态页面已经很好地更新了一段时间了,我想你可能把Xcode版本和Clang版本搞混了。Clang 3.1(最新版本)几乎完全支持C++11,包括lambda和初始值设定项列表。
C++--version
Apple Clang version 3.1(tags/Apple/Clang-318.0.58)(基于LLVM 3.1svn)
--这不是Clang 3.1吗?不,不是
Apple clang
版本与clang版本不同
LLVM 3.1svn
表示这是3.0版和3.1版之间某段时间的SVN快照。我不确定它有多老了,但它似乎至少从2月份就出现了。可能是重复的
# enables some additional C++11 extensions GCC has
clang++ -std=gnu++11 [input files...] 
# 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]