On Monday, 14 September 2015 at 19:59:18 UTC, jmh530 wrote:
In R, it is easy to have some optional inputs labeled as ... and then pass all those optional inputs in to another function. I was trying to get something similar to work in a templated D function, but I couldn't quite get the same behavior. What I have below is what I was able to get working.

You want to generally avoid the varargs and instead use variadic templates. The syntax is similar but a bit different:

R test(R, E, Args...)(Args args) {
    static if(Args.length == 0)
        // no additional arguments
    else
        return sum(args);
}


or whatever you actually need. But what this does is take any number of arguments of various types but makes that length and type available at compile time for static if inspection.

The args represents the whole list and you can loop over it, convert to an array with `[args]` (if they are all compatible types, or pass to another function as a group like I did here.

This is the way writeln is implemented btw.

Reply via email to