Delen via


Compilerfout C3499

een lambda die is opgegeven om een ongeldig retourtype te hebben, kan geen waarde retourneren

Opmerkingen

De compiler genereert deze fout wanneer een lambda-expressie die void als retourtype opgeeft een waarde retourneert, of wanneer een lambda-expressie meer dan één instructie bevat en een waarde retourneert, maar het retourtype niet specificeert.

Deze fout corrigeren

  • Geef geen waarde op uit de lambda-expressie of

  • Geef het retourtype van de lambda-expressie op of

  • Combineer de instructies waaruit de hoofdtekst van de lambda-expressie bestaat in één instructie.

Example

In het volgende voorbeeld wordt C3499 gegenereerd omdat de hoofdtekst van een lambda-expressie meerdere instructies bevat en een waarde retourneert, maar de lambda-expressie geeft het retourtype niet op:

// C3499a.cpp

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

In het volgende voorbeeld ziet u twee mogelijke oplossingen voor C3499. De eerste resolutie biedt het retourtype van de lambda-expressie. De tweede resolutie combineert de instructies die de hoofdtekst van de lambda-expressie vormen in één instructie.

// 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);
}

Zie ook

Lambda-expressies