当前位置: 首页 > article >正文

【Qt】C++11 Lambda表达式

1. 举例

	connect(ui->pushButton, &QPushButton::clicked, [=](bool checked){
	   //具体代码
	   qDebug() << "Hello" << checked;
   }); 

2. 详情

//完整形式
[ capture ] ( params ) opt -> ret { body; };	
  • capture 是捕获列表
  • params 是参数表
  • opt 是函数选项
  • ret 是返回值类型
  • body是函数体。

3. []内的表达

  • [] 不捕获任何变量。
  • [&] 捕获外部作用域中所有变量,并作为引用在函数体中使用(按引用捕获)。
  • [=] 捕获外部作用域中所有变量,并作为副本在函数体中使用(按值捕获)。
  • [=,&foo] 按值捕获外部作用域中所有变量,并按引用捕获 foo 变量。
  • [bar]按值捕获 bar 变量,同时不捕获其他变量。
  • [this] 捕获当前类中的 this 指针,让 lambda 表达式拥有和当前类成员函数同样的访问权限。如果已经使用了 & 或者 =,就默认添加此选项。捕获 this 的目的是可以在 lamda 中使用当前类的成员函数和成员变量。

4. 参考

【Qt笔记】 qt信号与槽的连接,附带说一下lambda和函数指针


http://www.kler.cn/a/471863.html

相关文章:

  • C++ 11,14,17 新特性
  • esp32开发笔记之一:esp32开发环境搭建vscode+ubuntu
  • reducer同步,dispatch异步
  • 分享:osgb倾斜数据转cesium-3dtiles 小工具.
  • 医学图像分析工具02:3D Slicer || 医学影像可视化与分析工具 支持第三方插件
  • nginx-链路追踪(trace)实现
  • C语言文件学习
  • 数据库回滚:大祸临头时
  • 复合机器人助力手机壳cnc加工向自动化升级
  • JAVA学习记录1
  • 【Linux】Linux的权限问题
  • 李正国教授、张钊博士到访美尔斯通,共绘心磁图技术新蓝图
  • jenkins入门10--自动化构建
  • 嵌入式驱动开发详解11(INPUT子系统)
  • 基于Spring Boot的社区老人健康信息管理系统的设计与实现(LW+源码+讲解)
  • 加速科技荣获“浙江省企业研究院”认定
  • with as提高sql的执行效率
  • 细说STM32F407单片机以轮询方式读写外部SRAM的方法
  • vue.js 插槽-作用域插槽
  • TDesign组件-1
  • Bash语言的编程范式
  • api接口对体育直播的重要性
  • spark——DAG专题
  • 万界星空科技电机行业MES系统解决方案
  • C++头文件map
  • 电子图纸怎么保障安全?