2

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

先感谢您。

4

3 回答 3

3

请参阅Stackoverflow 问题 #146381

简单地说:没有。Visual Studio 2010 将在一定程度上支持 C++0x,但我不确定这是否包含 lambda 表达式。

于 2009-01-23T12:14:12.973 回答
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 功能!:)

于 2012-02-06T02:21:15.857 回答
0

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

于 2009-01-23T15:24:48.360 回答