【发布时间】:2015-10-31 20:46:19
【问题描述】:
C++ 中是否有一种模式允许您返回一个函数,它返回一个函数本身。 例如
std::function<...> func = ...;
do
{
func = func();
}
while (func);
在 C 中,我认为您可以使用将 void* 转换为 void* (*)() 来实现它。 所以你会有
typedef void* (*MyFunc)(void);
MyFunc func = ...
do
{
func = (MyFunc)func();
}
while(func);
可以用 lambdas 实现吗?
【问题讨论】:
-
您的 C 示例不可移植,标准 C 不允许将函数指针转换为其他类型的指针。
-
@Olaf,问题不是“我可以用 C 中的 lambdas 做到这一点吗?”它是“我可以用 C++ 中的 lambdas 做到这一点吗?”所以 C 是否支持 lambdas 无关紧要。
-
这是一个相当模糊的提示。
-
@JonathanWakely 它是。
-
这是turtles all the way down 的事情吗?
标签: c++ c lambda functional-programming