首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-06-01 
一个匿名的lambda函数如何递归的调用自己?普通函数是有名字的,递归调用没有问题。那么lambda函数如何能递归

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

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

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

热点排行