在Visual Studio 2008 SP1中是否支持来自C ++ 0x的lambda表达式?下面的示例引发了语法错误。编译器有什么'-Cpp0x'标志吗?
#include <algorithm>
#include <iostream>
#include <ostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
for (int i = 0; i < 10; ++i)
{
v.push_back(i);
}
for_each(v.begin(), v.end(), [](int n) { cout << n << " "; });
cout << endl;
}
提前谢谢。
答案 0 :(得分:3)
请参阅Stackoverflow question #146381
简单地说:不。 Visual Studio 2010将在某种程度上支持C ++ 0x,但我不确定它是否包含lambda表达式。
答案 1 :(得分:1)
你可以......那种。
Visual C ++ 2008 编译器不支持lambda,但可以当然使用Visual Studio 2008中的Visual C ++ 2010 编译器! !
只需安装Visual C ++ 2010 Express,然后打开Visual Studio 2008并转到:
工具
->
选项->
项目和解决方案->
VC ++目录
然后添加以下条目:
对于Win32平台,请在开头插入$(ProgramFiles)\Microsoft Visual Studio 10.0\VC\bin
,在结尾插入$(ProgramFiles)\Microsoft Visual Studio 10.0\Common7\IDE
。
对于x64平台,请在开头插入$(ProgramFiles)\Microsoft Visual Studio 10.0\VC\bin\amd64
。
现在,您可以使用Visual Studio 2008中的所有VC ++ 2010功能! :)
答案 2 :(得分:0)
Visual Studio不支持,而是使用Boost库。