1

我无法在 XCode 4.5.2 中获得以下测试代码:

#include<algorithm>
#include<vector>
using namespace std;
int main()
{
  vector<int> v = {1, 2, 3};
  for_each(v.begin(), v.end(), [](int e){cout<<e;});
  return 0;
}

语法检查器在[]符号前说“预期表达式”。
这是否意味着 XCode 4.5.2 不支持 lambda?

是否有任何项目设置、编译标志或其他可以启用 lambdas 的东西?

我的编译器是否有可能不是正确的版本?(苹果 LLVM 编译器 4.1)

我在 SO 和其他论坛上阅读了很多,他们说版本号令人困惑,但每个人似乎都同意 XCode 4.4+ 支持 lambdas。这里的真相是什么?

谢谢你的帮助!

4

1 回答 1

2

Xcode 4.5.2 确实支持 lambda。您确定您处于 C++11 模式吗?转到您的构建设置。有一个 C++ 语言方言选项。它应该设置为C++11GNU++11。其他任何事情都意味着您没有使用 C++11,因此没有 lambda。

于 2012-12-04T22:26:37.937 回答