我无法在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不支持lambdas?
是否有任何项目设置,编译标志或其他可以启用lambdas的东西?
我的编译器是否有可能不是正确的版本? (Apple LLVM编译器4.1)
我在SO和其他论坛上已经阅读了很多内容,并且他们说版本号令人困惑但是每个人似乎都同意XCode 4.4+支持lambdas。这是什么真相?
感谢您的帮助!
答案 0 :(得分:2)
Xcode 4.5.2确实支持lambda。你确定你是在C ++ 11模式吗?转到您的构建设置。有一个C ++语言方言选项。它应设置为C++11
或GNU++11
。其他任何事情都意味着你没有使用C ++ 11,因此没有lambdas。