【发布时间】:2014-04-28 23:46:11
【问题描述】:
boost 绑定是否会在其生命周期内增加 shared_ptr 参数的引用计数?比如下面的代码:
void myFunc(boost::shared_ptr<MyClass> in) {
in->doThing();
}
void myOtherFunc() {
{
boost::shared_ptr<MyClass> p = ...;
// A
boost::function<void(boost::shared_ptr<MyClass>)> f = boost::bind(&myFunc, p);
// B
}
// C
}
如果 bind 确实增加了 ref 计数,则 ref 在 A 处应为 1,在 B 处为 2,在 C 处为 0。
【问题讨论】:
-
我想你会发现这个问题的第一个答案也回答了你的问题:boost-async-functions-and-shared-ptrs
标签: boost boost-bind