Are templates with variadic value parameters possible?
Devin Hill via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Jul 14 21:31:08 PDT 2016
On Friday, 15 July 2016 at 04:08:19 UTC, Basile B. wrote:
>
> With D style variadics it works, you can build the array from
> the list and have a static array:
>
> =====
> void foo(T...)(T t)
> {
> T[0][T.length] tt = [t]; // T[0] is the type
> writeln(tt); // [1,2,3]
> static assert(isStaticArray!(typeof(tt)));
> }
>
> void main(string[] args)
> {
> foo(1,2,3);
> }
> =====
>
> Note that you should check that the elements of T[] have all
> the same type.
> It shouldn't be a big problem.
Thanks, that way of doing it does work. I guess that means
there's no easy way to make sure all T are the same type without
a template constraint? It's not that hard, you're right, but it's
less elegant I think.
Just a shame that
auto makeStruct(long[] nums...)();
doesn't work; it seems like it would have.
Oh well, we can't have everything.
Thanks for the help though!
More information about the Digitalmars-d-learn
mailing list