Saya ingin tahu apakah mungkin untuk menulis fungsi yang mengembalikan fungsi lambda di C ++ 11. Tentu satu masalah adalah bagaimana mendeklarasikan fungsi tersebut. Setiap lambda memiliki tipe, tetapi tipe itu tidak dapat diekspresikan dalam C ++. Saya tidak berpikir ini akan berhasil:
auto retFun() -> decltype ([](int x) -> int)
{
return [](int x) { return x; }
}
Juga bukan ini:
int(int) retFun();
Saya tidak mengetahui adanya konversi otomatis dari lambda ke, katakanlah, pointer ke fungsi, atau semacamnya. Apakah satu-satunya solusi membuat objek fungsi dan mengembalikannya?