import std.stdio;
class Foo
{
void opDispatch(string name, T...)(T args)
{
writeln("Called method: ", name);
foreach (i, arg; args) writefln("args[%d] == %s", i, arg);
}
}
void main()
{
Foo bar = new Foo();
bar.baz();
bar.foo("hello", [5,10,15], 3.14f, ["foo":5, "bar":10], true);
}
aW1wb3J0IHN0ZC5zdGRpbzsKCmNsYXNzIEZvbwp7CiAgICB2b2lkIG9wRGlzcGF0Y2goc3RyaW5nIG5hbWUsIFQuLi4pKFQgYXJncykKICAgIHsKICAgICAgICB3cml0ZWxuKCJDYWxsZWQgbWV0aG9kOiAiLCBuYW1lKTsKICAgICAgICBmb3JlYWNoIChpLCBhcmc7IGFyZ3MpIHdyaXRlZmxuKCJhcmdzWyVkXSA9PSAlcyIsIGksIGFyZyk7CiAgICB9Cn0KCnZvaWQgbWFpbigpCnsKICAgIEZvbyBiYXIgPSBuZXcgRm9vKCk7CiAgICBiYXIuYmF6KCk7CiAgICBiYXIuZm9vKCJoZWxsbyIsIFs1LDEwLDE1XSwgMy4xNGYsIFsiZm9vIjo1LCAiYmFyIjoxMF0sIHRydWUpOwp9