On Wednesday, 29 January 2014 at 00:14:31 UTC, bearophile wrote:

On the other hand I don't know how much common are template instantiations with values all of the same type (like all ints as in this case) in D code.

Opinions welcome.

Bye,
bearophile

Well, if you're going for a direct translation, that would be more like

template value(ints...) {
        static if (!ints.length) enum value = 0;
        else static if (!is(ints[0] == int)) static assert(false);
        else enum value = ints[0] + 10*value!(ints[1..$]);
}

But that indeed illustrates a certain disconcert: we can already have variadic functions of the same type (void foo(int[] a...)). It would certainly be nice to have the same for template parameters.

Reply via email to