[英]Referring to this function in C++
有什么通用方法可以引用当前正在执行的函数? 例如,某些可以让我执行此操作的操作,
([] (int n) -> int {
if (n <= 1) {
return 1;
}
return n * thisFunc(n - 1);
})()
主要是,我想到的是匿名函数在不使用辅助命名函数的情况下调用自身。 所以避免这种情况 。
您可以使用函数指针或C ++ 11中的函数对象,但是没有内置的方法来引用函数。 例如:
std::function<int (int)> myFun = [] (int i)
{
if i <= 1
{
return 1;
}
return i * myFun(i-1);
}
我会辩称,递归调用lambda并不是本应使用它们的方式。 Lambda本质上旨在提供内联功能,因此非常简单。 更不用说您给出的示例可以很容易地用循环替换,从而可以更有效地实现:
int result = 1;
while (i > 1)
{
result = result * i;
i--;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.