Тип лямбда-выражения не указан.
Но они, как правило, просто синтаксический сахар для функторов.Лямбда переводится прямо в функтор.Все внутри []
превращается в параметры конструктора и члены объекта функтора, а параметры внутри ()
превращаются в параметры для operator()
.
функтора, который не захватывает переменные (ничеговнутри []
) можно преобразовать в указатель на функцию (MSVC2010 не поддерживает это, если это ваш компилятор, но это преобразование является частью стандарта).
Но фактический тип лямбды не является указателем на функцию.Это некоторый неопределенный тип функтора.