pointers - D2 : Function Pointers won't compile

标签 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。

最佳答案

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

对于后者:看起来divide是一个类方法,而不是一个普通函数。要么使其静态,要么将其移至类主体之外。

关于pointers - D2 : Function Pointers won't compile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36260538/

相关文章:

JAVA 错误的变量引用?收到奇怪的输出 - 可能是内存地址?

c++ - 返回空指针

C++:删除与免费和性能

c++ - 指向函数 C++ 的指针数组

keyword - "identifier"关键字的实现状态

arrays - 如何使用 D2 的 phobos std.range 封装现有数组

foreach - 如何让 foreach 对委托(delegate)使用非引用类型?

compilation - 编译废弃程序 (D)

c - 链接列表代码插入到中间,但不理解一行

windows - Langage D 在 Windows 包 tinyredis-2.1.1 上构建错误 : undefined identifier `EWOULDBLOCK` dmd failed with exit code 1