c++ - 将类型导出到 python

标签 c++ python boost types export

我想使用 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/

相关文章:

c++ - 限制不同计算机上的游戏速度

python - 大阵列 3D 中两点之间的距离

python - 自动机器学习 python 等效代码

c++ - 无法使用 boost::asio 收听 UDP 端口

c++ - 用char初始化多维数组?

c++ - 在编译时常量中为字符串文字添加下标

c++ - 允许同时快速搜索和订购的容器

c++ - 在 boost::asio::ip::tcp::socket 上设置非阻塞时出现错误文件描述符错误

c++ - GCC -fstack-check 选项在 C 中引发了什么异常

python - 从排序列表中提取索引