Ho avuto la percezione che il tipo di lambda sia un puntatore a funzione. Quando ho eseguito il test seguente, ho scoperto che era sbagliato ( demo ).
#define LAMBDA [] (int i) -> long { return 0; }
int main ()
{
long (*pFptr)(int) = LAMBDA; // ok
auto pAuto = LAMBDA; // ok
assert(typeid(pFptr) == typeid(pAuto)); // assertion fails !
}
Nel codice sopra manca qualche punto? In caso contrario, qual è l' typeof
espressione a lambda se dedotta con la auto
parola chiave?