On 11/18/2017 06:22 AM, kerdemdemir wrote:
//DMD64 D Compiler 2.072.2
import std.stdio;
bool foo( bool function( double ) controlFoo )
{
return controlFoo(5.0);
}
void foo2( double val )
{
writeln ( foo( a => a > val ) );
}
void main()
{
foo2(20);
writeln("Hello, World!");
}
Does not compile and gives this errors:
source_file.d(12): Error: function source.foo2.__lambda2 cannot access
frame of function source.foo2
foo should take 'delegate'.
If you want it to work with any callable entity, take the function as an
alias template parameter:
bool foo(alias controlFoo)()
{
return controlFoo(5.0);
}
void foo2( double val )
{
writeln ( foo!( a => a > val )() );
}
Ali