Поддержка лямбда-выражений в VS2008 SP1 - PullRequest
2 голосов
/ 23 января 2009

Есть ли поддержка лямбда-выражений из C ++ 0x в Visual Studio 2008 SP1? Пример ниже выдает мне синтаксические ошибки. Есть ли какой-нибудь флаг '-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 ]

3 голосов
/ 23 января 2009

См. Вопрос Stackoverflow # 146381

Проще говоря: нет. Visual Studio 2010 в некоторой степени будет поддерживать C ++ 0x, но я не уверен, что он будет включать лямбда-выражения.

1 голос
/ 06 февраля 2012

Можно ... вроде.

Компилятор Visual C ++ 2008 не поддерживает лямбды, но вы можете наверняка использовать компиляторы Visual C ++ 2010 из Visual Studio 2008 !! *

Просто установите 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 в начале .

Теперь вы можете использовать все функции VC ++ 2010 из Visual Studio 2008! :)

0 голосов
/ 23 января 2009

Visual Studio не поддерживает, вместо этого используйте библиотеку Boost.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...