2009-01-23 88 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功能! :)