Sdílet prostřednictvím


Chyba kompilátoru C3499

lambda, která byla zadána tak, aby měla návratový typ void, nemůže vrátit hodnotu.

Poznámky

Kompilátor vygeneruje tuto chybu, pokud výraz lambda, který určuje void jako návratový typ hodnotu; nebo když výraz lambda obsahuje více než jeden příkaz a vrátí hodnotu, ale nezadá jeho návratový typ.

Oprava této chyby

  • Nevrací hodnotu z výrazu lambda nebo

  • Zadejte návratový typ výrazu lambda nebo

  • Zkombinujte příkazy, které tvoří tělo výrazu lambda, do jednoho příkazu.

Example

Následující příklad generuje C3499, protože tělo výrazu lambda obsahuje více příkazů a vrací hodnotu, ale výraz lambda neurčí návratový typ:

// C3499a.cpp

int main()
{
   [](int x) { int n = x * 2; return n; } (5); // C3499
}

Následující příklad ukazuje dvě možná řešení na C3499. První řešení poskytuje návratový typ výrazu lambda. Druhé rozlišení kombinuje příkazy, které tvoří tělo výrazu lambda do jednoho příkazu.

// C3499b.cpp

int main()
{
   // Possible resolution 1:
   // Provide the return type of the lambda expression.
   [](int x) -> int { int n = x * 2; return n; } (5);

   // Possible resolution 2:
   // Combine the statements that make up the body of
   // the lambda expression into a single statement.
   [](int x) { return x * 2; } (5);
}

Viz také

Výrazy lambda