D2:函数指针不会编译

时间:2016-03-28 10:35:00

标签: pointers d

我正在尝试在DLang中使用函数指针(函数指针),但它不会编译。制作函数指针的网上所有代码对我来说都不起作用。这是我的代码:

tqvar function(tqlist)[string] procs;
procs["divide"] = ÷/// cannot implicitly convert expression (&this.divide) of type tqvar delegate(tqlist args) to tqvar function(tqlist) (QScript)
tqvar divide(tqlist args){
    tqvar result;
    result.ii = true;
    result.d = args.read(0).d/args.read(1).d;
    return result;
};

我在ubuntu上使用dmd2。

1 个答案:

答案 0 :(得分:6)

divide显然是代表,而不是函数。您可以使用代理列表(只需将function替换为delegate),或确保您的函数不是代理。

对于后者:看起来divide是一个类方法,而不是普通函数。将其设为static或将其移出课堂体外。