2011-03-18 64 views
2

我想使用boost.python將單例導入python並在那裏使用它。下面是代碼:將類型導出爲python

class ConfigManager : public boost::serialization::singleton<ConfigManager> {}; 
inline ConfigManager &configManager() { return ConfigManager::get_mutable_instance(); } 

BOOST_PYTHON_MODULE(ConfigManager) 
{ 
    bp::class_<ConfigManager, boost::noncopyable>("ConfigManager", bp::no_init); 
    bp::def("getHandle", &configManager, bp::return_value_policy<bp::copy_non_const_reference>()); 
} 

現在,當我打電話的蟒蛇getHandle,我得到:

TypeError: No to_python (by-value) converter found for C++ type: ConfigManager

我做錯了什麼?

回答

2

copy_non_const_reference會盡量給您參考複製到一個Python對象,你應該使用,而不是bp::reference_existing_object,我想在這裏和錯誤信息消失