Re: Multiple template variadic list not working

2017-05-21 Thread bastien penavayre via Digitalmars-d-learn

On Sunday, 21 May 2017 at 15:30:38 UTC, Stanislav Blinov wrote:


In this case, eponymous template should do the trick:

template func(UserArgs...) {
void func(Arguments...)(Arguments args) {}
}


Ah I see, I didn't know of this technique.
Thanks.


Re: Multiple template variadic list not working

2017-05-21 Thread Stanislav Blinov via Digitalmars-d-learn

On Sunday, 21 May 2017 at 15:13:55 UTC, bastien penavayre wrote:
I've been trying to translate the following idea expressed here 
in c++:


template 
void func(Arguments... args) {}

so I tried

void func(UserArgs..., Arguments...)(Arguments args) {}

and then

void func(Args...)(Filter!(isType, Args) args) {}

but nothing works.
This seems like something simple to handle, why is it not then ?


In this case, eponymous template should do the trick:

template func(UserArgs...) {
void func(Arguments...)(Arguments args) {}
}


Re: Multiple template variadic list not working

2017-05-21 Thread bastien penavayre via Digitalmars-d-learn

On Sunday, 21 May 2017 at 15:16:55 UTC, Stefan Koch wrote:

How would that work ?
How would I know where UserArgs end, and Arguments begin ?


func!(UserArgs here)(Arguments values here);
C++ does it without any problem.
I don't see what prevent D from doing it.


Re: Multiple template variadic list not working

2017-05-21 Thread Stefan Koch via Digitalmars-d-learn

On Sunday, 21 May 2017 at 15:13:55 UTC, bastien penavayre wrote:
I've been trying to translate the following idea expressed here 
in c++:


template 
void func(Arguments... args) {}

so I tried

void func(UserArgs..., Arguments...)(Arguments args) {}

and then

void func(Args...)(Filter!(isType, Args) args) {}

but nothing works.
This seems like something simple to handle, why is it not then ?


How would that work ?
How would I know where UserArgs end, and Arguments begin ?



Multiple template variadic list not working

2017-05-21 Thread bastien penavayre via Digitalmars-d-learn
I've been trying to translate the following idea expressed here 
in c++:


template 
void func(Arguments... args) {}

so I tried

void func(UserArgs..., Arguments...)(Arguments args) {}

and then

void func(Args...)(Filter!(isType, Args) args) {}

but nothing works.
This seems like something simple to handle, why is it not then ?