【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](...) {
    
});
相关推荐
2301_813599556 小时前
HTML表单能嵌套吗_表单嵌套限制与替代方案【解答】
jvm·数据库·python
CesareCheung6 小时前
SonarQube安装下载及代码覆盖率使用
数据库·代码覆盖率
yejqvow126 小时前
如何使用可视化查询生成器_免敲代码的多表JOIN配置
jvm·数据库·python
2301_815279526 小时前
学生党预算有限怎么选HTML函数工具_低配高性价比教程【教程】
jvm·数据库·python
2201_761040596 小时前
如何处理SQL中的位运算_掌握BITWISE函数应用场景
jvm·数据库·python
2301_764150567 小时前
C#怎么判断进程是否在运行_C#如何管理系统进程【必备】
jvm·数据库·python
justjinji7 小时前
Django DRF权限怎么加_IsAuthenticated与自定义BasePermission
jvm·数据库·python
橘子编程7 小时前
PostgreSQL全栈指南:从入门到精通
数据库·postgresql
a9511416427 小时前
解决 Bookmarklet 中 %0A 换行符导致的跨环境执行失败问题
jvm·数据库·python
解救女汉子7 小时前
MySQL存储过程运行出错怎么排查_使用DECLARE HANDLER捕获错误
jvm·数据库·python