Thread overview | ||||||
---|---|---|---|---|---|---|
|
September 03, 2018 Pass lambda into template | ||||
---|---|---|---|---|
| ||||
Hello, Here is a code with comments: https://run.dlang.io/is/BNl2Up. I don't understand how to pass lambda into template. I get an error: >onlineapp.d(18): Error: template instance `qwerty!((i) => "arg" ~ i.to!string ~ "[0] == '?'", "||")` cannot use local __lambda1 as parameter to non-global template qwerty(alias mapper, alias delimiter) |
September 03, 2018 Re: Pass lambda into template | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrey | On Monday, 3 September 2018 at 09:09:44 UTC, Andrey wrote:
> Hello,
>
> Here is a code with comments: https://run.dlang.io/is/BNl2Up.
>
> I don't understand how to pass lambda into template.
> I get an error:
>>onlineapp.d(18): Error: template instance `qwerty!((i) => "arg" ~ i.to!string ~ "[0] == '?'", "||")` cannot use local __lambda1 as parameter to non-global template qwerty(alias mapper, alias delimiter)
Not the best solution, but did you try to make querty template global adding a third parameter to pass count?
Andrea
|
September 03, 2018 Re: Pass lambda into template | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrey | On Monday, 3 September 2018 at 09:09:44 UTC, Andrey wrote: > Hello, > > Here is a code with comments: https://run.dlang.io/is/BNl2Up. > > I don't understand how to pass lambda into template. > I get an error: >>onlineapp.d(18): Error: template instance `qwerty!((i) => "arg" ~ i.to!string ~ "[0] == '?'", "||")` cannot use local __lambda1 as parameter to non-global template qwerty(alias mapper, alias delimiter) Congratulations, you've run into one of D's oldest and most annoying known bugs, issue 5710: https://issues.dlang.org/show_bug.cgi?id=5710 The solution is to define `qwerty` outside of `exec`, and add an additional parameter to pass in `count`: https://run.dlang.io/is/VTeizm |
September 04, 2018 Re: Pass lambda into template | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrey | On Monday, 3 September 2018 at 09:09:44 UTC, Andrey wrote:
> Hello,
>
> Here is a code with comments: https://run.dlang.io/is/BNl2Up.
>
> I don't understand how to pass lambda into template.
> I get an error:
>>onlineapp.d(18): Error: template instance `qwerty!((i) => "arg" ~ i.to!string ~ "[0] == '?'", "||")` cannot use local __lambda1 as parameter to non-global template qwerty(alias mapper, alias delimiter)
Try this:
if(mixin(qwerty!((int i) => "arg" ~ i.to!string ~ "[0] == '?'", "||")))
|
Copyright © 1999-2021 by the D Language Foundation