Thread overview
Append variadic template parameters
Feb 05, 2017
Mark Fisher
Feb 05, 2017
ag0aep6g
Feb 05, 2017
Meta
Feb 05, 2017
Mark Fisher
February 05, 2017
I want to write a template:

static auto ref BindArg(alias Func,alias arg,args...)() {
	return Func(arg,args);
}

where Func is called with 'arg' followed by the 'args' parameters.
eg:

string f(string a,int b,int c);
BindArg(f,"1",2,3);

The compiler throws an error:
Error: function f (string a, int b, int c) is not callable using argument types ()

How do I append the parameters?


February 05, 2017
On Sunday, 5 February 2017 at 20:36:57 UTC, Mark Fisher wrote:
> static auto ref BindArg(alias Func,alias arg,args...)() {
> 	return Func(arg,args);
> }
[...]
> BindArg(f,"1",2,3);

You forgot an exclamation mark there:

BindArg!(f,"1",2,3);
February 05, 2017
On Sunday, 5 February 2017 at 20:36:57 UTC, Mark Fisher wrote:
> I want to write a template:
>
> static auto ref BindArg(alias Func,alias arg,args...)() {
> 	return Func(arg,args);
> }
>
> where Func is called with 'arg' followed by the 'args' parameters.
> eg:
>
> string f(string a,int b,int c);

BindArg(f,"1",2,3);

You forgot the !

>
> The compiler throws an error:
> Error: function f (string a, int b, int c) is not callable using argument types ()
>
> How do I append the parameters?


February 05, 2017
On Sunday, 5 February 2017 at 21:51:14 UTC, Meta wrote:
> On Sunday, 5 February 2017 at 20:36:57 UTC, Mark Fisher wrote:
>> I want to write a template:
>>
>> static auto ref BindArg(alias Func,alias arg,args...)() {
>> 	return Func(arg,args);
>> }
>>
>> where Func is called with 'arg' followed by the 'args' parameters.
>> eg:
>>
>> string f(string a,int b,int c);
>
> BindArg(f,"1",2,3);
>
> You forgot the !
>
>>
>> The compiler throws an error:
>> Error: function f (string a, int b, int c) is not callable using argument types ()
>>
>> How do I append the parameters?

doh!

Thank you.