小编Hir*_*oki的帖子

无法在 pybind11 中绑定重载的静态成员函数

我尝试使用 pybind11 绑定静态重载函数,但遇到了一些问题。

\n\n

这是示例代码

\n\n
#include <pybind11/pybind11.h>\n\nnamespace py = pybind11;\n\nclass TESTDB {\n  public:\n    static void aaaa(int a, int b) {printf("aaaaa");};\n    static void aaaa(int a) {printf("xxxxx");};\n};\n\nPYBIND11_MODULE(example, m) {\n\n\n  py::class_<TESTDB>(m, "db")\n     .def_static("aaaa", (void (TESTDB::*)(int, int)) &TESTDB::aaaa);\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

但由于以下原因无法编译

\n\n
error: no matches converting function \xe2\x80\x98aaaa\xe2\x80\x99 to type \xe2\x80\x98void (class TESTDB::*)(int, int)\xe2\x80\x99\n   .def_static("aaaa", (void (TESTDB::*)(int, int)) &TESTDB::aaaa);\n note: candidates are: static void TESTDB::aaaa(int)\n static void aaaa(int a) {printf("xxxxx");};\n note:                 static void TESTDB::aaaa(int, int)\n static void aaaa(int a, int b) {printf("aaaaa");};\n
Run Code Online (Sandbox Code Playgroud)\n\n

任何想法? …

c++ python function-pointers pointer-to-member pybind11

2
推荐指数
1
解决办法
2456
查看次数