Boost.Python:占有争论

时间:2011-07-29 08:04:39

标签: c++ python boost boost-python

如果我有一个占有其中一个参数的函数,那么当我用Boost.Python公开该函数时,是否有任何调用策略?

void func(MyClass* obj)
{
    // Code that takes possession of `obj`
}

1 个答案:

答案 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