| Thread overview | |||||
|---|---|---|---|---|---|
|
April 20, 2015 Duplicate another function's parameters in a template function | ||||
|---|---|---|---|---|
| ||||
I am trying to write a template function that can take another function as an alias template argument and duplicate its parameters for it self.
For example, something like this...
void foo(ref int x){x = 7;}
auto pass(alias f)(/* ??? */)
{
// other stuff...
return f( /* ??? */ );
}
void main()
{
int y = 0;
pass!foo(y);
assert(y==7);
}
I tried..
auto pass(alias f, T...)(T t)
{
// other stuff...
return f(t);
}
but that does not work if there is a ref parameter.
Thanks
| ||||
April 20, 2015 Re: Duplicate another function's parameters in a template function | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Tofu Ninja | On Mon, 20 Apr 2015 22:50:52 +0000, Tofu Ninja wrote: > I am trying to write a template function that can take another function as an alias template argument and duplicate its parameters for it self. > > I tried.. > > auto pass(alias f, T...)(T t) > { > // other stuff... return f(t); > } > > but that does not work if there is a ref parameter. > > Thanks See std.functional.forward: http://dlang.org/phobos/std_functional.html#.forward | |||
April 20, 2015 Re: Duplicate another function's parameters in a template function | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Justin Whear | On Monday, 20 April 2015 at 23:20:07 UTC, Justin Whear wrote:
> See std.functional.forward:
> http://dlang.org/phobos/std_functional.html#.forward
Sweet beans, thanks
| |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply