On 6/21/20 10:04 PM, user1234 wrote:
On Monday, 22 June 2020 at 01:47:49 UTC, repr-man wrote:
Is there any way to pass an unknown number of slices into a function? I'm trying to do something along the lines of:

void func(T)(T[] args...)
{
    //...
}

That wasn't working,

[...]

Thanks for the help!

Can you provide more details for "that wasnt working" ? because

   void func(T)(T[] args...)
   {
     writeln(args.length);
   }

   void main()
   {
     int[] a,b;
     func(a[0..$],b[0..$]);
   }

works, so there must be a missing detail.
Maybe each slice has different type ?

I think the problem is that typesafe variadics bind to arrays as well as individual parameters. So func(a[0 .. $]) for instance would resolve as func!int instead of the desired func!(int[]).

The answer might be:

func(T)(T[][] args...)

as Adam says.

-Steve

Reply via email to