C++ 智能指针 unique_ptr 和 lambda 表达式 结合 使用 问题
发布时间
阅读量:
阅读量
C++ 智能指针unique_ptr和lambda表达式
-
- 零、引言
- 一、疑问点
- 二、成因探讨
- 三、验证程序
- 零、引言
零、前言
自C++11标准发布以来,新增了智能指针与lambda表达式两项重要特性,它们在实际应用中展现出极高的便捷性。然而,这些强大工具若未能正确掌握其使用方法,同样可能引发严重问题。正因如此,我便亲身经历了相关困扰!
一、问题
在项目开发过程中,当将智能指针unique_ptr与lambda表达式联合应用时,出现了如下错误提示:
“/work/test/testAutoPtr/main.cpp:24: error: 调用了已被删除的函数 ‘std::unique_ptr<_Tp, _Dp>::unique_ptr(const std::unique_ptr<_Tp, _Dp>&) [with _Tp = MyPrint; _Dp = std::default_delete]’
for_each(tempVector.begin(),tempVector.end(),[=](int numInt){”
二、原因分析框架构建
上述问题的产生主要源于unique_ptr不支持赋值与拷贝操作,对此可采取引用传递的方式进行处理,或者将其替换为shared_ptr,该类型支持赋值与拷
全部评论 (0)
还没有任何评论哟~
