Typed variadic template syntax?
Etienne
etcimon at gmail.com
Wed Jan 29 12:10:21 PST 2014
On Wednesday, 29 January 2014 at 09:53:15 UTC, Stanislav Blinov
wrote:
> On Wednesday, 29 January 2014 at 09:50:13 UTC, Timon Gehr wrote:
>
>> import std.range, std.algorithm;
>> int value(int xs[]...) {
>> return reduce!((a,b)=>10*a+b)(0,xs.retro);
>> }
>
> Sadly, you can't build a struct (with N int fields) or an enum
> this way.
That was a problem for me today XD . Couldn't make a auto
fct(string[] choices ...)(string[] id, string[] key ...) but I
managed to find a workaround...
// KEYWORDS
enum USING = "USING.",
VAR = "VAR.",
LIST = "LIST.",
SET = "SET.",
ZSET = "ZSET.",
HASHMAP = "HASHMAP.",
LOCK = "LOCK.",
UNLOCK = "UNLOCK.",
SKIPCACHE = "SKIPCACHE.",
INCREMENT = "INCREMENT.",
DECREMENT = "DECREMENT.",
FRONT = "FRONT.",
BACK = "BACK.",
PUSH = "PUSH.",
POP = "POP.",
REPLACE = "REPLACE.",
TRIM = "TRIM.",
RETURNS = "RETURNS.",
LENGTH = "LENGTH.",
EXISTS = "EXISTS.",
VALUE = "VALUE.",
KEY = "KEY.",
STREAM = "STREAM.",
ERROR = "ERROR.",
void exec(string command)(){
foreach(str ; choice.splitter(".")){
writeln(str);
}
}
void main()
{
exec!(USING ~ VAR ~ ADD ~ USING ~ LIST ~ INSERT ~ LOCK)();
}
More information about the Digitalmars-d
mailing list