我想使用 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
时,我得到:
TypeError: No to_python (by-value) converter found for C++ type: ConfigManager
我做错了什么?
最佳答案
copy_non_const_reference
将尝试复制您对 Python 对象的引用,您应该改用 bp::reference_existing_object
,我在这里试过错误消息消失了
关于c++ - 将类型导出到 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5356706/