On Sunday, 27 May 2018 at 13:20:08 UTC, Adam D. Ruppe wrote:
On Sunday, 27 May 2018 at 06:47:38 UTC, IntegratedDimensions wrote:
Putting the code in a template/function/lambda does not work because of the scopes which will be called when the main function exists.

I think you might just be using the wrong kind of function.

---
import std.stdio;
// the helper does the setup then calls another function for specific stuff
void helper(void delegate(ref int) specialized) {
    // setup stuff
    int x;
    scope(exit) writeln("exit ", x);

    // specialized stuff abstracted out
    specialized(x);
}

void foo() {
        helper( (ref x) {
                x = 34;
        });
}

void main() {
        foo();
}
---

Yeah, this should work. Was hoping there was just a simple way to pull the code out but I guess this provides the best alternative.

Thanks.


Reply via email to