Je me demande si il est possible d'écrire une fonction qui retourne une fonction lambda en C++11. Bien sûr, un problème est de savoir comment déclarer une telle fonction. Chaque lambda a un type, mais que le type n'est pas exprimable en C++. Je ne pense pas que cela fonctionnera:
auto retFun() -> decltype ([](int x) -> int)
{
return [](int x) { return x; }
}
Ni ce:
int(int) retFun();
Je ne suis pas au courant de toute les conversions automatiques de lambdas, par exemple, les pointeurs de fonctions, ou quelque chose du genre. Est la seule solution confectionnant vous-même un objet de fonction et de le retourner?