Wrap a call?

monkyyy crazymonkyyy at gmail.com
Wed Feb 18 20:00:59 UTC 2026


On Wednesday, 18 February 2026 at 19:43:38 UTC, JN wrote:
>     import std;
>
>     void before()
>     {
>         writeln("Before");
>     }
>
>     void after()
>     {
>         writeln("After");
>     }
>
>     void add(int x, int y)
>     {
>         writeln(x + y);
>     }
>
>     template WrapCall(string call)
>     {
>         enum WrapCall = "before(); " ~ call ~ "; after();";
>     }
>
>     void main()
>     {
>         mixin WrapCall!"add(1, 2)";
>     }
>
> This doesn't work, if I change it to mixin(WrapCall!"add(1, 
> 2")), it works, why?

what do you mean why, thats a enum use this:

```d
void wrapcall(alias F,T...)(T args){
   before;
   F(args);
   after;
}
```


More information about the Digitalmars-d-learn mailing list