发布于2021-06-07 20:19 阅读(880) 评论(0) 点赞(30) 收藏(2)
lambda表达式书写格式:[capture-list] (parameters) mutable -> return-type { statement }
[捕捉列表] (参数列表) 取消常量性 -> 返回值类型{函数体}
lambda项目 | 细节说明 |
---|---|
捕捉列表 | 作为lambda表达式的起始标志,可以捕捉上下文中的变量供lambda函数使用 |
参数列表 | 与普通函数的参数列表一致,如果不需要参数传递,则可以连同()一起省略 |
mutable | 默认情况下,lambda函数总是一个const函数,mutable可以取消其常量性。使该修饰符时,参数列表不可省略(即使参数为空)。 |
-> 返回值类型 | 返回值类型。用追踪返回类型形式声明函数的返回值类型,没有返回值时此部分可省略。返回值类型明确情况下,也可省略,由编译器对返回类型进行导。 |
{函数体} | 函数体。在该函数体内,除了可以使用其参数外,还可以使用所有捕获到的变量 |
捕捉列表 | 说明 |
---|---|
[var] | 表示值传递方式捕捉变量var |
[=] | 表示值传递方式捕获所有父作用域中的变量(包括this) |
[&var] | 表示引用传递捕捉变量var |
[&] | 表示引用传递捕捉所有父作用域中的变量(包括this) |
[this] | 表示值传递方式捕捉当前的this指针 |
注意捕捉列表可以连续取内容,但不允许连续捕捉(在捕捉全部值的基础上,再次捕捉值,相反。引用就可以)
父作用域就是包含lambda表达式的呢一块代码{};
在块作用域以外的lambda函数捕捉列表必须为空(全局)
值传递不改变内容:
这两个例子来源网络,做一下理解:
lambda表达式在作为自定义类型的仿函数时,相当于
重载了()的类
和真正的仿函数底层是一个原理.–>就是实例化一个仿函数对象,调用括号运算符重载.
原文链接:https://blog.csdn.net/zhaocx111222333/article/details/117565547
作者:hhbnn
链接:http://www.phpheidong.com/blog/article/89451/21d420c9c5bb63e1dad4/
来源:php黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 php黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-4
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!