2014-10-04 23 views
1

從python運行C++類成員函數時,出現此錯誤: 沒有爲C++類註冊Python類std :: string 成員函數是:boost.python沒有爲C++類註冊Python類std :: string

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()失敗,上述錯誤

回答

4

你的方法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); 
相關問題