【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](...) {
    
});
相关推荐
Apache Flink5 分钟前
Flink + Fluss 实战: Delta Join 原理解析与操作指南
大数据·数据库·flink
·云扬·10 分钟前
MySQL中count(*)深度解析与性能优化实践
数据库·mysql·性能优化
Predestination王瀞潞34 分钟前
数据库MongoDB 8.2.3和Shell工具的安装
数据库
MediaTea36 分钟前
Python:实例 __dict__ 详解
java·linux·前端·数据库·python
今夕资源网37 分钟前
如何修复“无需升级,您的WordPress数据库已经是最新的了”无限死循环
数据库·wordpress
盛世宏博北京1 小时前
学校图书馆自动化恒温恒湿控制系统技术方案
网络·数据库·人工智能
Sammyyyyy1 小时前
MongoDB 的文档模型与 CRUD 实战
开发语言·数据库·mongodb·servbay
宁小法1 小时前
SQL查询对比: select exists($sql) 跟 select * from `users` where `id` = 60000001的区别差异
数据库·sql·select exists
语落心生1 小时前
Flink 到 Doris 数据同步----从二阶段提交到幂等性 StreamLoader 的演进之路
数据库
程序员阿鹏1 小时前
事务与 ACID 及失效场景
java·开发语言·数据库