Megosztás a következőn keresztül:


C3487 fordítási hiba

"visszatérési típus": minden visszatérési kifejezésnek ugyanarra a típusra kell következtetnie: korábban "visszatérési típus" volt

Megjegyzések

A lambdának meg kell adnia a visszatérési típusát, kivéve, ha egyetlen visszatérési utasítást tartalmaz. Ha egy lambda több visszatérési utasítást tartalmaz, mindegyiknek azonos típusúnak kell lennie.

A hiba kijavítása

  • Adja meg a lambda záró visszatérési típusát. Ellenőrizze, hogy a lambda összes visszatérési típusa megegyezik-e, vagy implicit módon konvertálható-e a visszatérési típusra.

Example

Az alábbi példa C3487-et hoz létre, mert a lambda visszatérési típusai nem egyeznek:

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

Lásd még

Lambda-kifejezések