【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](...) {
    
});
相关推荐
实心儿儿4 分钟前
C++ —— AVL树实现
数据库
m0_518019481 小时前
使用Kivy开发跨平台的移动应用
jvm·数据库·python
weixin_421922692 小时前
机器学习模型部署:将模型转化为Web API
jvm·数据库·python
Fortune792 小时前
Python迭代器(Iterator)揭秘:for循环背后的故事
jvm·数据库·python
cm6543202 小时前
Python字典与集合:高效数据管理的艺术
jvm·数据库·python
无心水2 小时前
时间处理工程落地指南:数据库/日志/API/定时任务
java·大数据·数据库·日志·分布式架构·utc·gmt
2401_846341652 小时前
Python单元测试(unittest)实战指南
jvm·数据库·python
岁岁种桃花儿2 小时前
AI超级智能开发系列从入门到上天第十篇:SpringAI+云知识库服务
linux·运维·数据库·人工智能·oracle·llm
CHQIUU2 小时前
PostgreSQL vs MySQL:选型指南与深度对比
数据库·mysql·postgresql
qq_416018722 小时前
Python多线程与多进程:如何选择?(GIL全局解释器锁详解)
jvm·数据库·python