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