適当に書いたけど良いのかこんなんで? 途中から再開するためには色々面倒か。
import std.stdio; template Foo(){ int f = 0; int func(){ return f++; } } auto carry(alias T)(){ mixin T!(); return &func; } void main(){ for(int i;i<3;i++){ auto f = carry!(Foo)(); writefln(f()); writefln(f()); writefln(f()); } }
何か色々アレだな。もう少しで落ち着けそうだからそれから考えるか。