如果我有一个占有其中一个参数的函数,那么当我用Boost.Python公开该函数时,是否有任何调用策略?
void func(MyClass* obj)
{
// Code that takes possession of `obj`
}
答案 0 :(得分:1)
我认为您可以使用boost::weak_ptr
。
using boost::shared_ptr;
using boost::weak_ptr;
func (weak_ptr<MyClass> wp)
{
shared_ptr<MyClass> sp = wp.lock ();
if (sp)
// sp stays alive until it goes out of scope or is reset
}
基本上,这是boost::weak_ptr
文档中提供的示例。
这是reference。