2

Visual Studio2008SP1でC++0xからのラムダ式がサポートされていますか?以下の例では、構文エラーが発生します。コンパイラなどの「-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を参照してください

簡単に言えば、いいえ。VisualStudio2010はある程度C++0xをサポートしますが、ラムダ式が含まれるかどうかはわかりません。

于 2009-01-23T12:14:12.973 に答える
1

できます...ちょっと。

Visual C++ 2008コンパイラはラムダをサポートしていませんが、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 に答える