【发布时间】:2014-09-09 01:30:53
【问题描述】:
我正在尝试为数组创建一个“每个”方法的实现。我希望能够像这样使用它:
void each(void*[] arr, void function(void*) f) {
assert(arr != null);
foreach(int i, void* x ; arr){
f(&x);
}
}
void setToFive(int* x){
*x = 5
}
int main(){
int[] arr = new int[50];
each(arr, &setToFive);
writeln(arr);
return 0;
}
但是,我得到了错误:
function test.each (void*[] stuff, void function(void*) f) is not callable using argument types (int[], void function(int* x))
我是以错误的方式解决这个问题,还是我遗漏了什么?
【问题讨论】:
标签: casting function-pointers d void-pointers