On Friday, 17 June 2016 at 21:20:01 UTC, Timon Gehr wrote:
On 17.06.2016 23:00, Nordlöw wrote:
I want to create a function that takes a variadic number of arguments all of a specific type, say T, without having to create GC-allocated
heap array.

Is there a better way than:

f(Args...)(Args args)
     if (allSameType!(Args, T);

in terms of template bloat?

alias T=int;

void foo(T[] a...)@nogc{}

void bar()@nogc{
    foo(1,2,3);
}

this. the compiler is smart, it is creating a slice of stack memory here. note that you can't just assign `a` to, for example, global or member: when execution of `foo` ends, `a` will still point to stack memory. if you need to store `a` somewhere, be sure to `.dup` it.

Reply via email to