Udostępnij za pomocą


Błąd kompilatora C3493

"var" nie można przechwycić niejawnie, ponieważ nie określono domyślnego trybu przechwytywania

Uwagi

Puste przechwytywanie wyrażenia lambda określa, []że wyrażenie lambda nie jawnie ani niejawnie przechwytuje żadnych zmiennych.

Aby poprawić ten błąd

  • Podaj domyślny tryb przechwytywania lub

  • Jawne przechwytywanie co najmniej jednej zmiennej.

Example

Poniższy przykład generuje C3493, ponieważ modyfikuje zmienną zewnętrzną, ale określa pustą klauzulę przechwytywania:

// C3493a.cpp

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

Poniższy przykład rozwiązuje problem C3493, określając przy użyciu odwołania jako domyślny tryb przechwytywania.

// C3493b.cpp

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

Zobacz też

Wyrażenia lambda