如何从boost.python返回新创建的对象?

时间:2015-05-14 12:24:59

标签: python c++ boost boost-python

module.cpp:

#include <boost/python.hpp>

namespace py = boost::python;

py::object* foo()
{
    return new py::object("Test");
}

BOOST_PYTHON_MODULE(module)
{
    py::def("foo", &foo, py::return_value_policy<py::manage_new_object>());
}

python.py:

from module import foo
x = foo()

python代码抛出异常:
TypeError: No Python class registered for C++ class class boost::python::api::object

主要原因是通过指针返回新创建的对象而不是返回值导致复制。我错了吗?

实际上,我想要返回很多字符串,但我不知道如何以最便宜的方式制作它。

0 个答案:

没有答案