Mi chiedo se sia possibile scrivere una funzione che restituisce una funzione lambda in C ++ 11. Naturalmente un problema è come dichiarare tale funzione. Ogni lambda ha un tipo, ma quel tipo non è esprimibile in C ++. Non penso che funzionerebbe:
auto retFun() -> decltype ([](int x) -> int)
{
return [](int x) { return x; }
}
Né questo:
int(int) retFun();
Non sono a conoscenza di conversioni automatiche da lambda a, diciamo, puntatori a funzioni o qualcosa del genere. L'unica soluzione è creare manualmente un oggetto funzione e restituirlo?