Лямбды могут содержать состояние (как захваченные ссылки из окружающего контекста);если они этого не делают, они могут быть сохранены в указателе функции.Если они это делают, они должны быть сохранены как функциональный объект (потому что нет места для сохранения состояния в указателе функции).
// No state, can be a function pointer:
int (*func_pointer) (int) = [](int a) { return a; };
// One with state:
int b = 3;
std::function<int (int)> func_obj = [&](int a) { return a*b; };