pyd wrap_class 示例不编译
pyd wrap_class example does not compile
我是 D 的新手,我尝试使用 pyd 框架为我的第一个代码实现一个 python 包装器。我遵循 http://svn.dsource.org/projects/pyd/trunk/raw_html/class_wrapping.html 提供的示例代码,但 wrap_class 的方法似乎失败了。我的代码片段
import pyd.pyd;
import pyd.class_wrap;
class Foo {
int m_i;
this() { m_i = 0; }
this(int j) { m_i = j; }
this(int j, int k) { m_i = j + k; }
int i() { return m_i; }
void i(int j) { m_i = j; }
void foo(char[] s) {
import std.stdio;
writefln(s, m_i);
}
Foo opAdd(Foo rhs) {
return new Foo(m_i + rhs.m_i);
}
}
extern(C) void PydMain() {
module_init();
// Call wrap_class
wrap_class!(
Foo,
// Wrap the "foo" method
Def!(Foo.foo),
// Wrap the "i" property
Property!(Foo.i),
// Wrap the constructors.
Init!(void function(int), void function(int, int))
);
}
本质上是从示例中复制的,计算失败并出现以下错误:
/usr/local/lib/python2.7/dist-packages/pyd/infrastructure/pyd/class_wrap.d(526): Error: tuple index 0 exceeds 0
/usr/local/lib/python2.7/dist-packages/pyd/infrastructure/pyd/class_wrap.d(534): Error: template instance pyd.class_wrap.Init!(void function(int), void function(int, int)).Init.Inner!(Foo) error instantiating
/usr/local/lib/python2.7/dist-packages/pyd/infrastructure/pyd/make_wrapper.d(126): instantiated from here: shim!(2LU, Foo)
/usr/local/lib/python2.7/dist-packages/pyd/infrastructure/pyd/make_wrapper.d(136): 4 recursive instantiations from here: class_decls!(0u, Foo, Def!(foo), Property!(i), Init!(void function(int), void function(int, int)))
/usr/local/lib/python2.7/dist-packages/pyd/infrastructure/pyd/class_wrap.d(1483): instantiated from here: make_wrapper!(Foo, Def!(foo), Property!(i), Init!(void function(int), void function(int, int)))
/usr/local/lib/python2.7/dist-packages/pyd/infrastructure/pyd/class_wrap.d(1476): instantiated from here: _wrap_class!(Foo, "Foo", "", "", Def!(foo), Property!(i), Init!(void function(int), void function(int, int)))
pystochcalc.d(35): instantiated from here: wrap_class!(Foo, Def!(foo), Property!(i), Init!(void function(int), void function(int, int)))
error: command 'dmd' failed with exit status 1
有谁知道这条错误消息告诉我什么以及我该如何解决它?谢谢!
dsource 的 pyd 已过时。使用 GitHub - https://github.com/ariovistus/pyd . For examples check the /examples 文件夹中的 pyd。查看 /examples/wrap 中的示例,其中显示了如何执行此类操作。
我是 D 的新手,我尝试使用 pyd 框架为我的第一个代码实现一个 python 包装器。我遵循 http://svn.dsource.org/projects/pyd/trunk/raw_html/class_wrapping.html 提供的示例代码,但 wrap_class 的方法似乎失败了。我的代码片段
import pyd.pyd;
import pyd.class_wrap;
class Foo {
int m_i;
this() { m_i = 0; }
this(int j) { m_i = j; }
this(int j, int k) { m_i = j + k; }
int i() { return m_i; }
void i(int j) { m_i = j; }
void foo(char[] s) {
import std.stdio;
writefln(s, m_i);
}
Foo opAdd(Foo rhs) {
return new Foo(m_i + rhs.m_i);
}
}
extern(C) void PydMain() {
module_init();
// Call wrap_class
wrap_class!(
Foo,
// Wrap the "foo" method
Def!(Foo.foo),
// Wrap the "i" property
Property!(Foo.i),
// Wrap the constructors.
Init!(void function(int), void function(int, int))
);
}
本质上是从示例中复制的,计算失败并出现以下错误:
/usr/local/lib/python2.7/dist-packages/pyd/infrastructure/pyd/class_wrap.d(526): Error: tuple index 0 exceeds 0
/usr/local/lib/python2.7/dist-packages/pyd/infrastructure/pyd/class_wrap.d(534): Error: template instance pyd.class_wrap.Init!(void function(int), void function(int, int)).Init.Inner!(Foo) error instantiating
/usr/local/lib/python2.7/dist-packages/pyd/infrastructure/pyd/make_wrapper.d(126): instantiated from here: shim!(2LU, Foo)
/usr/local/lib/python2.7/dist-packages/pyd/infrastructure/pyd/make_wrapper.d(136): 4 recursive instantiations from here: class_decls!(0u, Foo, Def!(foo), Property!(i), Init!(void function(int), void function(int, int)))
/usr/local/lib/python2.7/dist-packages/pyd/infrastructure/pyd/class_wrap.d(1483): instantiated from here: make_wrapper!(Foo, Def!(foo), Property!(i), Init!(void function(int), void function(int, int)))
/usr/local/lib/python2.7/dist-packages/pyd/infrastructure/pyd/class_wrap.d(1476): instantiated from here: _wrap_class!(Foo, "Foo", "", "", Def!(foo), Property!(i), Init!(void function(int), void function(int, int)))
pystochcalc.d(35): instantiated from here: wrap_class!(Foo, Def!(foo), Property!(i), Init!(void function(int), void function(int, int)))
error: command 'dmd' failed with exit status 1
有谁知道这条错误消息告诉我什么以及我该如何解决它?谢谢!
dsource 的 pyd 已过时。使用 GitHub - https://github.com/ariovistus/pyd . For examples check the /examples 文件夹中的 pyd。查看 /examples/wrap 中的示例,其中显示了如何执行此类操作。