问题描述
使用 pybind11,我试图将双指针绑定到自定义类型(抽象类)。但我没有看到任何解释如何操作的示例。
我有类ITest,它是抽象的,具有纯虚函数,它将参数作为指向其他抽象类IValue的双指针,如下面的代码片段所示。
'''
class IValue
{
virtual long get() = 0;
}
class ITest
{
virtual fnDoublePointerarg(wchar_t* value,IValue** obj) = 0;
}
'''
如何在 pybind 中为类创建双指针绑定?任何实现它的示例,不胜感激。
更多详情:
我创建了一个trampoline类,因为它是抽象类,pybind11无法实例化如下
class PyIValue : public IValue
{
public IValue::IValue;
long get(){
PYBIND11_OVERRIDE_PURE(
long,IValue,get,);
}
};
class PyITest : public ITest
{
public:
using ITest::ITest;
int fnDoublePointerarg(const wchar_t* domainId,IValue** ppOb) {
PYBIND11_OVERRIDE_PURE(
int,ITest,fnDoublePointerarg,std::wstring domainId,IValue** ppOb);
}
};
PYBIND11_MODULE(Example,m) {
m.doc() = "pybind11 example plugin"; // Optional module docstring
py::class_<ITest,PyITest>(m,"ITest")
.def(py::init<>())
.def("fnDoublePointerarg",ITest::fnDoublePointerarg)
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)