0
C++ 객체를 만드는 함수가 있습니다. 리팩터링하기 전에, C++ 함수에서 포인터를 반환하고, 파이썬 포장지 을으로 부스트하면, 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);
}
을 이 변경으로 반품 정책을 어떻게 지정해야합니까?
스마트 포인터를 사용하여 결국이 문제에 대해 걱정하지 않았습니다. –
스마트 포인터를 사용하십시오. 그것도 작동합니다. :-) –