最佳答案
我想知道是否有可能在 C + + 11中编写一个返回 lambda 函数的函数。当然,一个问题是如何声明这样的函数。每个 lambda 都有一个类型,但是这个类型在 C + + 中是不可表达的。我不认为这会起作用:
auto retFun() -> decltype ([](int x) -> int)
{
return [](int x) { return x; }
}
还有这个:
int(int) retFun();
我不知道任何从 lambdas 到函数指针之类的自动转换。唯一的解决方案是手工创建一个函数对象并返回它吗?