Miałem wrażenie, że typ lambda to wskaźnik funkcji. Kiedy wykonałem następujący test, stwierdziłem, że jest źle ( 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 !
}
Czy w powyższym kodzie brakuje jakiegoś punktu? Jeśli nie, to jakie jest typeof
wyrażenie lambda po wydedukowaniu za pomocą auto
słowa kluczowego?