Delegate / Error: cannot implicitly convert expression...
Robert M. Münch
robert.muench at saphirion.com
Sat Jun 15 16:34:22 UTC 2019
On 2019-06-15 16:19:23 +0000, Anonymouse said:
> 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
Hmm... but this here compiles:
void main()
{
import std.stdio: write, writeln, writef, writefln;
void foo(int a) {return; }
void test()
{
void delegate(int) dg;
dg = &foo;
}
}
See: https://run.dlang.io/is/U7uhAX
Is it because inside main() there is a stack frame? And with a global
function there is none? I'm a bit confused...
--
Robert M. Münch
http://www.saphirion.com
smarter | better | faster
More information about the Digitalmars-d-learn
mailing list