Delen via


Compilerfout C3487

'retourtype': alle retourexpressies moeten worden afgeleid van hetzelfde type: voorheen was het 'retourtype'

Opmerkingen

Een lambda moet zijn terugkeerwaarde specificeren, tenzij deze een enkele return-uitdrukking bevat. Als een lambda meerdere returnuitspraken bevat, moeten ze allemaal hetzelfde type hebben.

Deze fout corrigeren

  • Geef een volgorde retourtype op voor de lambda. Controleer of alle retourwaarden van de lambda van hetzelfde type zijn of impliciet kunnen worden geconverteerd naar het retourtype.

Example

In het volgende voorbeeld wordt C3487 gegenereerd omdat de retourtypen van de lambda niet overeenkomen:

// C3487.cpp
// Compile by using: cl /c /W4 C3487.cpp

int* test(int* pi) {
   // To fix the error, uncomment the trailing return type below
   auto odd_pointer = [=]() /* -> int* */ {
      if (*pi % 2)
         return pi;
      return nullptr; // C3487 - nullptr is not an int* type
   };
   return odd_pointer();
}

Zie ook

Lambda-expressies