On Tuesday, 27 March 2012 at 14:54:11 UTC, Artur Skawina wrote:
On 03/27/12 15:52, Tongzhou Li wrote:
Oh, I also tried:
void seq_apply(Params..., Args...)(void delegate(Params) func, Args args)
But I got a error:
    variadic template parameter must be last
Does it mean that there can only be one variadic template parameter? How to fix it?

I'm not sure what exactly you're trying to do, but maybe this will help:

void seq_apply(Func, Args...)(Func func, Args args) {
        import std.traits;
        alias ParameterTypeTuple!Func Params;
        enum ArgNum = Params.length-1;
        func(args[0], args[1 .. ArgNum + 1]);
        static if (args.length > ArgNum + 1) {
seq_apply(func, args[ArgNum + 1 .. args.length]);
        }
}

artur

Yes, this is what I want to do. Thanks!

Reply via email to