【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](...) {
    
});
相关推荐
别或许13 小时前
14、使用C++连接MySQL及接口
数据库·mysql
阿里云云原生13 小时前
阿里云 ARMS 自定义指标采集:打破传统 APM 局限,实现业务可视化监控
数据库·阿里云·云原生·oracle·arms
lu9up13 小时前
业务表异常阻塞导致接口超时处理案例
数据库·性能优化
San30.13 小时前
从 Mobile First 到 AI First:用 Python 和大模型让数据库“开口说话”
数据库·人工智能·python
古城小栈13 小时前
PostgreSQL 【vs】 MySQL
数据库·mysql·postgresql
安全系统学习13 小时前
网络安全漏洞之React 框架分析
数据库·安全·web安全·网络安全
我科绝伦(Huanhuan Zhou)13 小时前
Oracle RAC表空间从本地目录迁移至ASM磁盘组的两种实现方案
数据库·oracle
生产队队长13 小时前
Database:Navicat 连接 Oracle失败:logon denied
数据库·oracle
Misnice13 小时前
MySQL 和 PostgreSQL 的区别
数据库·mysql·postgresql
YJlio13 小时前
AI赋能编程语言:探索AI与开发的深度结合
数据库·人工智能·电脑