Andrej Mitrovic: > What I mean is, if curry detects that you're currying a compile-time > argument against a template, then it should do what your > PartialTemplate/StaticCurry would do.
This is currently not possible, a static curry needs compile-time arguments, so they need to specified as template arguments (with the bang !), while the normal curry is supposed to work with run-time values too. Walter has tried to unify the two, using a syntax like: void foo(int x, static int y, int z) {} That's equivalent to: void foo(int y)(int x, int z) {} But the legend says he has found unspecified implementation difficulties, so the idea was abandoned. One purpose of D design is to avoid excessive compiler complexity. ----------------------- Simen kjaeraas: > dranges has something like this: > http://svn.dsource.org/projects/dranges/trunk/dranges/docs/templates.html > see CurryTemplate Thank you for the link. This looks like a true currying, instead of a partial application like std.functional.curry. I suggest to add CurryTemplate to Phobos2 while we wait forever for templates to be curried on default :-) Bye, bearophile