我有一个创建 C++ 对象的函数。在重构之前,我从 C++ 函数返回一个指针,在 boost python 包装器声明中,我会使用boost::python::return_value_policy<boost::python::manage_new_object>
. 像这样的东西:
MyObject* create_object_from_description(std::string& description)
{
...
return myObject;
}
BOOST_PYTHON_MODULE(pymol) {
boost::python::def("create_obj_from_desc", create_object_from_description,
(boost::python::arg("description")),
"",
boost::python::return_value_policy<boost::python::manage_new_object>()
);
现在我需要返回的不仅仅是对象,还有一些错误信息,重构基本上改变了 C++ 函数,让它返回一个元组:
boost::python::tuple create_object_from_description(std::string& description)
{
...
return boost::python::make_tuple(myObject, errmsg);
}
我应该如何指定此更改的退货政策?