Цікаво, чи можливо написати функцію, яка повертає лямбда-функцію в C ++ 11. Звичайно, одна проблема полягає в тому, як оголосити таку функцію. Кожна лямбда має тип, але цей тип не виражається в C ++. Я не думаю, що це буде працювати:
auto retFun() -> decltype ([](int x) -> int)
{
return [](int x) { return x; }
}
Ані це:
int(int) retFun();
Мені не відомі будь-які автоматичні перетворення з лямбд у, скажімо, вказівники на функції, або деякі подібні. Чи єдиним рішенням є ручна робота об’єкта функції та її повернення?