Me pregunto si es posible escribir una función que devuelva una función lambda en C ++ 11. Por supuesto, un problema es cómo declarar dicha función. Cada lambda tiene un tipo, pero ese tipo no se puede expresar en C ++. No creo que esto funcione:
auto retFun() -> decltype ([](int x) -> int)
{
return [](int x) { return x; }
}
Ni esto:
int(int) retFun();
No tengo conocimiento de ninguna conversión automática de lambdas a, digamos, punteros a funciones, o algo así. ¿La única solución es hacer a mano un objeto de función y devolverlo?