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.