Интересно, можно ли написать функцию, которая возвращает лямбда-функцию в С++ 11. Конечно, одна проблема заключается в том, как объявить такую функцию. Каждая лямбда имеет тип, но этот тип не выражен в С++. Я не думаю, что это сработает:
auto retFun() -> decltype ([](int x) -> int)
{
return [](int x) { return x; }
}
И это:
int(int) retFun();
Я не знаю никаких автоматических преобразований из лямбда, например, указателей на функции или некоторых таких. Это единственное решение, которое обрабатывает объект функции и возвращает его?