Xcode 4.2和lambda表达式(OSX Lion)

Joh*_*ith 2 c++ lambda xcode4.2 c++11

我想在我的Mac上编译C++ 11功能.到目前为止,我尝试过两种不同的东西.首先,最新的Xcode(4.2)声称支持"C++ 11特性",但是当我尝试编译它时:

#include <iostream>

int main()
{
    using namespace std;
    int n = [] (int x, int y) { return x + y; }(5, 4);
    cout << n << endl;
}
Run Code Online (Sandbox Code Playgroud)

我得到第一个括号([)的错误,"预期表达式".我猜测lambda表达式不包含在新的C++ 11功能中?

然后,作为一个解决方法,我从http://hpc.sourceforge.net/下载了gcc 4.6二进制文件,但是当我使用gcc-4.6时(/usr/local/bin/gcc-4.6 -std = c ++ 0x test.cpp)我得到:

Undefined symbols for architecture x86_64:
  "std::cout", referenced from:
      _main in cctnMUFF.o
...
Run Code Online (Sandbox Code Playgroud)

我认为这是一个没有找到标准库的问题?

谢谢!

rub*_*nvb 6

XCode 4.2附带一个已推迟的Clang 2.9,由Apple打补丁.它不支持lambda和统一初始化器.Clang 3.0也没有,所以你必须等到至少Clang 3.1(从现在起6个月内到期).

或者,您可以使用Macports的GCC 4.6进行lambda支持.


更新到您的更新:您需要链接g++-lstdc++手动添加.