Debug help - delegate from dlang Tour
Brother Bill
brotherbill at mail.com
Mon Sep 8 14:32:32 UTC 2025
https://tour.dlang.org/tour/en/basics/delegates
This is so simple. What is D complaining about?
Should this also work with a Template, as shown?
```
import std.stdio;
void main()
{
// auto add(T)(T lhs, T rhs)
// {
// return lhs + rhs;
// }
int add(int lhs, int rhs) {
return lhs + rhs;
}
int doSomething(int function(int, int) doer)
{
// call passed function
return doer(5, 6);
}
doSomething(&add);
}
```
Console output:
```
c:\dev\D\D_templates_tutorial\toy1\source\app.d(20): Error:
function `doSomething` is not callable using argument types `(int
delegate(int lhs, int rhs) pure nothrow @nogc @safe)`
doSomething(&add);
^
c:\dev\D\D_templates_tutorial\toy1\source\app.d(20):
cannot pass argument `&add` of type `int delegate(int lhs, int
rhs) pure nothrow @nogc @safe` to parameter `int function(int,
int) doer`
c:\dev\D\D_templates_tutorial\toy1\source\app.d(14):
`app.main.doSomething(int function(int, int) doer)` declared here
int doSomething(int function(int, int) doer)
^
```
More information about the Digitalmars-d-learn
mailing list