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
主要原因是通过指针返回新创建的对象而不是返回值导致复制。我错了吗?
实际上,我想要返回很多字符串,但我不知道如何以最便宜的方式制作它。