从python运行c ++类成员函数时,我收到此错误: 没有为C ++类std :: string注册Python类 成员函数是:
class holiday_calendar {
public:
const std::string& get_name() const;
void set_name(const std::string&);
};
我使用过这个曝光代码
class_<holiday_calendar>("holiday_calendar")
.def("getname", &holiday_calendar::get_name, return_internal_reference<>())
.def("setname", &holiday_calendar::set_name);
我可以实例化对象holiday_calendar,我可以在上面调用setname('SOMENAME') 但调用getname()失败并出现上述错误
答案 0 :(得分:5)
您的方法get_name返回const std::string&
,请尝试:
class_<holiday_calendar>("holiday_calendar")
.def("getname", &holiday_calendar::get_name, return_value_policy<copy_const_reference>())
.def("setname", &holiday_calendar::set_name);