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