gpt4 book ai didi

c++ - Boost.Python 静态方法重载

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:41:15 24 4
gpt4 key购买 nike

如何使用 Boost.Python 公开以下类?

class C {
public:
static void F(int) {}
static void F(double) {}
};

我试过这样的:

bp::class_<C>("C")
.def("F", (void (C::*)(int))&C::F).staticmethod("F")
.def("F", (void (C::*)(double))&C::F).staticmethod("F")
;

但是,它在 Python 中引发了一个异常(SystemError:libdistributions 的初始化引发了未报告的异常)。如果我从 bp::class_ 中删除其中一个重载,则一切正常。我知道 Boost.Python 可以自动处理重载的构造函数,所以我想知道静态方法是否有类似的东西。


回答

bp::class_<C>("C")
.def("F", (void (C::*)(int))&C::F) // Note missing staticmethod call!
.def("F", (void (C::*)(double))&C::F).staticmethod("F")
;

最佳答案

关于c++ - Boost.Python 静态方法重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8715627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com