水木社区手机版
首页
|版面-C++程序设计语言(CPlusPlus)|
新版wap站已上线
返回
1/1
|
转到
主题:被 std::function 坑一回
17楼
|
ble
|
2020-11-30 10:53:04
|
展开
对unique_ptr不太清楚的时候,我一般会release出来而不是在让它在lambda中间传递
auto up = std::make_unique<Foo>();
call([p=up.release()](){std::unique_ptr<Foo> ap(p); ap->bar();})
--
FROM 222.129.55.*
28楼
|
ble
|
2020-11-30 21:19:34
|
展开
哦,是的,大意了,没注意到这个是call()而不是直接使用lambda,确实危险。
【 在 ilovecpp 的大作中提到: 】
: 不好。最后没调用lambda,就leak。拷贝lambda并且都调用了,就double free。
: auto up = std::make_unique<std::string>("hello");
: if (0) {
: ...................
--
FROM 222.129.55.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版