C ++ 11'de bir lambda işlevi döndüren bir işlev yazmanın mümkün olup olmadığını merak ediyorum. Elbette bir sorun, böyle bir işlevin nasıl beyan edileceğidir. Her lambda'nın bir türü vardır, ancak bu tür C ++ 'da ifade edilemez. Bunun işe yarayacağını sanmıyorum:
auto retFun() -> decltype ([](int x) -> int)
{
return [](int x) { return x; }
}
Ne de bu:
int(int) retFun();
Lambdalardan, örneğin işaretçilerden işlevlere veya benzerlerine otomatik dönüşümlerin farkında değilim. Tek çözüm bir işlev nesnesini el işçiliği ile döndürmek mi?