Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- string addParameter (string parameters, string newParameter) ()
- {
- return parameters is null ? newParameter : parameters ~ "," ~ newParameter;
- }
- struct Proxy (alias func, string parameters, Args ...)
- {
- Args args;
- auto opDispatch (string name, T) (T value)
- {
- return Proxy!(func, addParameter!(parameters, name), Args, T)(args, value);
- }
- auto call () ()
- {
- return callNamed!(func, parameters)(args);
- }
- }
- Proxy!(func, null) named (alias func) ()
- {
- return Proxy!(func, null)();
- }
- int foo (int a, int b)
- {
- writefln("a=%d b=%d", a, b);
- return b;
- }
- void main ()
- {
- named!(foo).b(3).a(4).call();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement