如何在lambda表达式中使用引用形式捕捉局部变量

技术如何在lambda表达式中使用引用形式捕捉局部变量本篇文章为大家展示了如何在lambda表达式中使用引用形式捕捉局部变量,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获F.52

本文向您展示了如何在lambda表达式中通过引用来捕获局部变量。内容简洁易懂,一定会让你眼前一亮。希望通过这篇文章的详细介绍,你能有所收获。

F.52 在lambda表达式中使用引用形式捕捉局部变量,包含向算法传递变量的情况。

注意:如果你不知道什么是捕获。

https://mp.weixin.qq.com/s/VuW_5OcX7uUUrMbsN2wxPQ

Reason(原因)

为了效率和正确性,当在本地使用lambda表达式时,几乎总是需要通过引用来捕获变量。这包括编写或调用本地并发算法,因为它们需要在返回之前满足。

00-1010

效率考虑:对于大多数类型,传输引用的成本低于传输值的成本。

关于正确性的考虑:很多调用都希望在调用端对原对象产生联合作用(参考下面的例子)(在执行被调用函数的同时)。价值无法做到这一点。

Discussion(讨论)

不幸的是,对于本地调用,没有简单的方法可以通过引用来捕获常量类型变量,以实现效率并避免级联效应。

注意:常量类型的应用应该引用函数声明中声明为常量的引用参数,这样既能提供高效率,又能提供写保护。

Note(注意)

这里,一个大对象(一个网络消息)被传递给一个迭代算法,复制该消息是无效的或不正确的(可能无法复制):

std:for_each(begin(套接字),end(套接字),[message](auto socket){ socket . send(消息);});

注:每个周期的复制成本也很高。

Example(示例)

这是一个简单的三阶段并发管道。每个状态对象封装一个工作线程和一个队列,一个进程函数处理入队,它的析构函数自动进入阻塞状态,等待队列变空后再关闭线程。

void send _ packets(buffersbufs){ stage encryptor([](buffer b){ encrypt(b));});stage compressor([](buffer b){ compress(b);encrypter . process(b);});stage decorator([](buffer b){ decorate(b));压缩机.工艺(b);});for(autob : bufs){ decorator . process(b);} }//自动blockswaitingforpipeline to finish

注意:代码中使用了隐式捕获。详情请参考https://mp.weixin.qq.com/s/RNpLqwekN3BJUbIN-DwVxQ.

00-1010标记了lambda表达式通过引用捕获变量的情况,但是它并没有在函数范围内本地使用,也没有通过引用传递给另一个函数。

注意:这是一个近似规则,但是可以标记为:传递一个很可能被调用方保存的指针,在通过参数访问的堆上的某个地方写入,返回lambda表达式,等等。生命周期条件组还提供了标记转义指针和引用的一般条件,并且还包括从lambda表达式派生的情况。

上面的内容是如何在lambda表达式中通过引用来捕获局部变量。你学到什么知识或技能了吗?如果你想学习更多的技能或丰富你的知识,请关注行业信息渠道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/79845.html

(0)

相关推荐

  • Python源代码的编制技巧是什么

    技术Python源代码的编制技巧是什么本篇文章为大家展示了Python源代码的编制技巧是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。下面进行详细说明Python源代码的编程

    攻略 2021年10月28日
  • Tcpdump抓取http GET/POST requests

    技术Tcpdump抓取http GET/POST requests Tcpdump抓取http GET/POST requests目录抓取HTTP GET 请求抓取HTTP POST 请求目的端口为80

    礼包 2021年11月18日
  • 胆战心惊什么意思,胆战心惊中的战字是什么意思

    技术胆战心惊什么意思,胆战心惊中的战字是什么意思宠辱不惊 宠:宠爱。受宠受辱都不在呼。指不因个人得失而动心。宠辱若惊 无论受宠胆战心惊什么意思、受辱,心里都要振动。形容人非常计较得失。怵目惊心 看见某种严重情况,心里感到

    生活 2021年10月19日
  • 富文本编辑器 从word中复制内容带多张图片

    技术富文本编辑器 从word中复制内容带多张图片 富文本编辑器 从word中复制内容带多张图片?
    1.4.2之后官方并没有做功能的改动,1.4.2在word复制这块没有bug,其他版本会出现手动无法转存

    礼包 2021年11月10日
  • 如何增加抖音粉丝数量,如何快速增长抖音粉丝?

    技术如何增加抖音粉丝数量,如何快速增长抖音粉丝?抖音快速涨粉方法抖音无疑是目前新媒体里面涨粉最容易,涨粉最快的平台了。前有成都小甜甜一夜涨粉500万,后有灵魂当铺一天涨粉75万。这种涨粉速度在其他平台是想都不敢想象的。不

    测评 2021年11月11日
  • SQL调优怎么生成海量测试数据

    技术SQL调优怎么生成海量测试数据小编给大家分享一下SQL调优怎么生成海量测试数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!场景,如果出现

    攻略 2021年11月23日