【问题标题】:How to converter std::string* in boost.python?如何在 boost.python 中转换 std::string*?
【发布时间】:2012-12-21 10:16:38
【问题描述】:

如何在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*

【问题讨论】:

标签: c++ python c boost-python


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    相关资源
    最近更新 更多