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