람다의 유형은 함수 포인터라는 인식이있었습니다. 다음 테스트를 수행했을 때 잘못된 것으로 나타났습니다 ( 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 !
}
위의 코드에 포인트가 없습니까? 그렇지 않으면 키워드로 typeof
추론 할 때 람다 식은 auto
무엇입니까?