Compartilhar via


Erro do compilador C3493

'var' não pode ser capturado implicitamente porque nenhum modo de captura padrão foi especificado

A captura de expressão lambda vazia [] especifica que a expressão lambda não captura explicitamente ou implicitamente nenhuma variável.

Para corrigir este erro

  • Fornecer um modo de captura padrão ou

  • Capturar explicitamente uma ou mais variáveis.

Exemplos

O exemplo a seguir gera C3493 porque modifica uma variável externa, mas especifica a cláusula de captura vazia:

// C3493a.cpp

int main()
{
   int m = 55;
   [](int n) { m = n; }(99); // C3493
}

O exemplo a seguir resolve o C3493 especificando por referência como o modo de captura padrão.

// C3493b.cpp

int main()
{
   int m = 55;
   [&](int n) { m = n; }(99);
}

Confira também

Expressões Lambda