On Saturday, 15 June 2019 at 15:54:00 UTC, Robert M. Münch wrote:
Why does the follwing code give: Error: cannot implicitly convert expression & myFunc of type void function(int a) to void delegate(int)


void myFunc(int a){return;}

void main()
{
   void delegate(int) dg;
   dg = &myFunc;
}

See: https://run.dlang.io/is/iTYo2L

By design, I think.

"delegate and function objects cannot be mixed. But the standard function std.functional.toDelegate converts a function to a delegate."

Your example compiles if the assignment is changed to dg = toDelegate(&myFunc); (given appropriate imports).

https://tour.dlang.org/tour/en/basics/delegates

https://dlang.org/phobos/std_functional.html#.toDelegate

Reply via email to