C++ LLVM&;C+的强大支持+;11

C++ LLVM&;C+的强大支持+;11,c++,xcode,c++11,llvm,clang,C++,Xcode,C++11,Llvm,Clang,我有一些我为微软VC++10编写的代码。我使用C++11,尤其是下面的表达式 std::function<int (int)> f =...; auto it = v.begin(); for_each(it1, it2,[&](int& i) { ++i;}); std::函数f=。。。; 自动it=v.begin(); 对于每一个(it1,it2,[&](int&i){++i;}); 现在我正在用llvm&clang试用MacOS和XCode,我的代码无法编

我有一些我为微软VC++10编写的代码。我使用C++11,尤其是下面的表达式

std::function<int (int)> f =...;
auto it = v.begin();
for_each(it1, it2,[&](int& i) { ++i;}); 
std::函数f=。。。;
自动it=v.begin();
对于每一个(it1,it2,[&](int&i){++i;});

现在我正在用llvm&clang试用MacOS和XCode,我的代码无法编译!问题是为什么?也许,我应该指定一个使用c++11的选项。在这种情况下,我在哪里可以在xcode中修复它?

您将需要xcode 4.2

在生成设置中,搜索“c++0x”,并将“c++语言方言设置为c++0x[-std=c++0x]”。然后搜索“libc++”,并将“C++标准库”设置为“libc++”


并非所有的C++11工具都可用。例如,尚未支持lambda。

有关Clang当前支持的C++11功能的列表,请参阅。Lambda表达式(以及语法相关的初始值设定项列表)当前未实现

目前,您唯一的选择(直到Clangdevs实现lambda支持)是使用MacPorts的GCC4.5/4.6编译器


额外的命令行选项将是
-std=c++0x
(在下一版本的Clang和GCC中,它将是适当的
-std=c++11
)。

注意,所讨论的列表仅用于repo中支持的内容。你从XCode中得到的几乎可以肯定是一个早期版本。尼科尔:没错,但它很容易(也很快)自己构建Clang;-)Xcode4.1Clang也支持许多C++11特性,但您必须将选项放在“其他标志”字段中。另外,clang的Xcode版本不允许在OSX pre-Lion上使用libc++,因此即使安装了libc++,也不能使用它。详细信息:@bames53:如果你想在雪豹上使用libc++,我可以帮你。到这里()并按照10.6的说明进行操作。你需要一个助手库我在我的个人网站主机。如果你需要帮助,可以直接联系我。Xcode 4.1不支持libc++,但只支持GCC4.2。GCC4.2没有提供对C++11的库支持(尽管有一些tr1支持)。