小编use*_*949的帖子

在boost python中使用自定义智能指针

我想使用Boost :: Python公开python中自定义智能指针包装的对象

警告

  • 自定义智能指针的现有用法过于普遍,无法经济地升级到boost智能指针
  • 我想使用几个位置描述的自动解除引用技术

问题是我似乎无法做到这一点.这是一个示例代码:

LegacyCode :: Ptr - >传统智能指针代码

LegacyCode :: Session - >传统智能指针中包含的遗留对象

namespace boost { namespace python
{
    template <class T> T* get_pointer(LegacyCode::Ptr<T> const& p)
    {
        return p.get();
    }


    template <typename T>
    struct pointee<LegacyCode::Ptr<T> >
    {
        typedef T type;
    };

}}*

BOOST_PYTHON_MODULE(pyro)
{
    using namespace boost::python;

    class_<LegacyCode::Session,LegacyCode::Ptr<LegacyCode::Session>>("Session")
                                          .def("get_type",&LegacyCode::Session::getType);
}
Run Code Online (Sandbox Code Playgroud)

c++ python boost smart-pointers boost-python

5
推荐指数
1
解决办法
970
查看次数

标签 统计

boost ×1

boost-python ×1

c++ ×1

python ×1

smart-pointers ×1