Какой тип лямбда-выражения выводится с помощью «auto» в C ++ 11?

У меня было ощущение, что тип лямбда - это указатель на функцию. Когда я выполнил следующий тест, я обнаружил, что это неправильно (демонстрация).

#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 ключевое слово?

Ответы на вопрос(6)

Ваш ответ на вопрос