クロージャてすと
import std.stdio; int fill() { int[100] x; } int delegate() mkcounter(int i) { return {return i++;}; } int main() { int delegate() c1 = mkcounter(1); int delegate() c2 = mkcounter(3); writefln("%d", c1()); fill(); writefln("%d", c2()); fill(); writefln("%d", c1()); fill(); writefln("%d", c2()); fill(); writefln("%d", c1()); return 0; }
でコンパイルして、
C:\hoge\prg\WindowsManager>counter 1 3 2 4 3
あ、これありなら色々超楽になりそうな。
ヲルさまによる色々なテストコード http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=61016