digitalmars.D.learn - Multiple template variadic list not working
- bastien penavayre (10/10) May 21 2017 I've been trying to translate the following idea expressed here
- Stefan Koch (3/13) May 21 2017 How would that work ?
- bastien penavayre (4/6) May 21 2017 func!(UserArgs here)(Arguments values here);
- Stanislav Blinov (5/15) May 21 2017 In this case, eponymous template should do the trick:
- bastien penavayre (3/7) May 21 2017 Ah I see, I didn't know of this technique.
I've been trying to translate the following idea expressed here
in c++:
template <auto... UserArgs, class... Arguments>
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 ?
May 21 2017
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 <auto... UserArgs, class... Arguments>
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 ?
May 21 2017
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.
May 21 2017
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 <auto... UserArgs, class... Arguments>
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) {}
}
May 21 2017
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.
May 21 2017









bastien penavayre <swac31 gmail.com> 