如何在boost.python中转换std :: string *?

时间:2012-12-21 10:16:39

标签: c++ python c boost-python

如何在boost.python中转换std :: string *?我必须在python中处理c ++的一些数据。数据可能很大。所以我返回一个指向python的指针。但是有一些错误。

C ++

#include <boost/python.hpp>
#include <string>

class A {
public:
    A() {
        data="342342fgsf";
        ss=&data;
    }
    std::string *ss;
    std::string data;
};

BOOST_PYTHON_MODULE(ctopy)
{
    using namespace boost::python;
    class_<A> ("A",init<>())
        .add_property(ss,&A::ss)
    ;
}

import ctopy
t1=ctopy.A()
print t1.ss     #error.TypeError:No to_python (by-value) converter found for c++ type:std::string*

1 个答案:

答案 0 :(得分:0)

你不能只传递指针。使用pointer_wrapperhttp://www.boost.org/doc/libs/1_53_0/libs/python/doc/v2/ptr.html