【Qt】之【Get√】【Bug】通过值捕获(或 const 引用捕获)传进 lambda,会默认复制成 const

通过值捕获(或 const 引用捕获)传进 lambda,会默认复制成 const。

背景

匿名函数外部定义 QSet<QString> nameSet,需要传入匿名函数使用修改

c++ 复制代码
connect(dlg, ..., [nameSet](...) {
    nameSet.insert(name); // ❌ 这里其实是 const QSet<QString>
});

所以报错:

复制代码
XXX.cpp:604:33: No matching member function for call to 'insert'
qset.h:155:21: candidate function not viable: 'this' argument has type 'const QSet<QString>', but method is not marked const
qset.h:157:21: candidate function not viable: 'this' argument has type 'const QSet<QString>', but method is not marked const
qset.h:179:14: candidate function not viable: requires 2 arguments, but 1 was provided

解决:

使用引用&捕获

c++ 复制代码
connect(dlg, ..., [&nameSet](...) {
    
});
相关推荐
西岭千秋雪_37 分钟前
Redis性能优化
数据库·redis·笔记·学习·缓存·性能优化
极限实验室1 小时前
INFINI Labs 产品更新 | INFINI Console 1.29.6 发布 – 优化监控图表异常毛刺等
数据库·产品
先睡1 小时前
优化MySQL查询
数据库·sql
小张是铁粉1 小时前
oracle的内存架构学习
数据库·学习·oracle·架构
专注API从业者1 小时前
构建淘宝评论监控系统:API 接口开发与实时数据采集教程
大数据·前端·数据库·oracle
藏在歌词里1 小时前
数据库-元数据表
数据库
小乌龟不会飞2 小时前
Ubuntu 安装 etcd 与 etcd-cpp-apiv3
数据库·etcd
计算机毕设定制辅导-无忧学长10 小时前
西门子 PLC 与 Modbus 集成:S7-1500 RTU/TCP 配置指南(一)
服务器·数据库·tcp/ip
程序员柳10 小时前
基于微信小程序的校园二手交易平台、微信小程序校园二手商城源代码+数据库+使用说明,layui+微信小程序+Spring Boot
数据库·微信小程序·layui
梦在深巷、11 小时前
MySQL/MariaDB数据库主从复制之基于二进制日志的方式
linux·数据库·mysql·mariadb