Lambda表达式支持VS2008 SP1

时间:2009-01-23 12:06:28

标签: c++ visual-studio-2008 lambda c++11

在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;
}

提前谢谢。

3 个答案:

答案 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

    < / LI>
  • 对于x64平台,请在开头插入$(ProgramFiles)\Microsoft Visual Studio 10.0\VC\bin\amd64

现在,您可以使用Visual Studio 2008中的所有VC ++ 2010功能! :)

答案 2 :(得分:0)

Visual Studio不支持,而是使用Boost库。