Pergunta

Existe suporte para expressões lambda do C ++ 0x no Visual Studio 2008 SP1? Exemplo abaixo me joga sintaxe erros. Existe alguma bandeira '-Cpp0x' para compilador ou algo assim?

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

Agradecemos antecipadamente.

Foi útil?

Solução

Consulte Stackoverflow questão # 146381

Em termos simples: não. Visual Studio 2010 apoiará C ++ 0x até certo ponto, mas não estou certo se isso irá incluir expressões lambda.

Outras dicas

Você pode ... tipo de.

O Visual C ++ 2008 compilador não suporta lambdas, mas você pode certamente utilizar o Visual C ++ 2010 compiladores a partir do Visual Studio 2008! !

Basta instalar Visual C ++ 2010 Express, e em seguida, abra o Visual Studio 2008 e vá para:

Tools->Options->Project e Diretórios Solutions->VC ++

e, em seguida, adicione as seguintes entradas:

  • Para a plataforma Win32, inserção $(ProgramFiles)\Microsoft Visual Studio 10.0\VC\bin no começando , e $(ProgramFiles)\Microsoft Visual Studio 10.0\Common7\IDE no end .

  • Para a plataforma x64, inserção $(ProgramFiles)\Microsoft Visual Studio 10.0\VC\bin\amd64 no início .

Agora você pode usar todo o VC ++ 2010 funcionalidades do Visual Studio 2008! :)

Visual Studio não suporta, em vez usar a biblioteca Boost.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top