How does it work if one of the members takes an argument that is deduced inside the handler function?

On 2018-06-29 18:05:00 +0000, Ali ‡ehreli said:

Passing a lambda or a string mixin:

import std.stdio;

class C {
     void A() {
         writeln(__FUNCTION__);
     }

     void B() {
         writeln(__FUNCTION__);
     }

void C(bool flag) {
        writln(__FUNCTION__):
}

}

void handler(alias func)(C[] cs) {
     foreach (c; cs) {
         func(c);

func(c)(flag);

     }
}

void handler_2(string func)(C[] cs) {
     foreach (c; cs) {
         enum expr = "c." ~ func ~ "();";
         mixin(expr);
     }
}

void main() {
     auto cs = [ new C(), new C() ];

     handler!(o => o.A())(cs);

How to get the parameter spec into the lambda?

     handler!(o => o.B())(cs);

     handler_2!"A"(cs);
     handler_2!"B"(cs);
}

Ali


--
Robert M. Münch
http://www.saphirion.com
smarter | better | faster

Reply via email to