2009-01-23 89 views
2

支持Visual Studio 2008 SP1中C++ 0x的lambda表达式吗?下面的例子会引发语法错误。编译器还有什么'-Cpp0x'标志?VS2008 SP1支持Lambda表达式

#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

请参阅Stackoverflow question #146381

简而言之:没有。 Visual Studio 2010将在某种程度上支持C++ 0x,但我不确定它是否包含lambda表达式。

+0

它会。无论如何,在CTP版本中。 – 2009-01-23 12:34:32

0

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

1

你可以......种。

在Visual C++ 2008 编译不支持lambda表达式,但你可以肯定使用Visual C++ 2010 编译器从Visual Studio 2008!

只需安装Visual C++ 2010 Express,然后打开Visual Studio 2008和去:

工具->选项->项目和解决方案-> VC++目录

,然后添加下面的条目:

  • 对于Win32平台,在t处插入$(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功能! :)