读书人

一个匿名的lambda函数怎么递归的调用自

发布时间: 2012-06-01 16:46:36 作者: rapoo

一个匿名的lambda函数如何递归的调用自己?
普通函数是有名字的,递归调用没有问题。

那么lambda函数如何能递归的调用自身呢? 谢谢!

[解决办法]
lambda一般称为表达式,不称之为函数,有时叫匿名函数。你可以把他赋值给变量,但是在初始化这个变量前你却无法使用它,这样你就没有办法在没有名字的条件下去调用它。
auto l = [](int x)->int{if(x == 1)return l(0);};
这样使用会报error: ‘l’ is not captured错误。
如果真想使用递归可以把lambda表达式作为参数传递进函数,在函数中可以去使用这个函数,也就能够递归调用了。

读书人网 >C++

热点推荐