我想使用boost.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>());
}
现在,当我在python中调用
getHandle
时,我得到:我做错了什么?
最佳答案
copy_non_const_reference
将尝试将您的引用复制到Python对象,您应该改用bp::reference_existing_object
,我在这里尝试过,错误消息消失了