从一次DEBUG体会modernCPP
今天写树形dp,用匿名函数出现了极其玄学的报错,modernCPP给我上了一课
note: 'solve()::<lambda(auto:23, int, int)>::~
()' is implicitly deleted because the default definition would be ill-formed
1|0源代码
2|0排查
由于报错是析构函数出错,比较难以排查,所以就枚举了所有情况,发现以下几种写法可以通过编译。
-
声明
function
类型从声明类型后就可以通过编译我感觉是编译器在 auto 推断时出了错误,然而却并非如此。
-
注明捕获对象
这里找出了真正的原因,自动捕获到了脏东西。
3|0解决
自动捕获到了什么脏东西?
对捕获对象逐一排查后,发现对于邻接表存图的 edge
,把大小改成常量或者使用 vector
嵌套后就能通过编译。
这里涉及了 CPP 为了兼容 C 而留下的遗留问题
VLA虽然允许存在,但是modernCPP的接口没有义务再兼容VLA
改成嵌套 vector
后即可通过
__EOF__

本文作者:Kdlyh
本文链接:https://www.cnblogs.com/kdlyh/p/18034430.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/kdlyh/p/18034430.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下